我正在尝试制作一个shell脚本,该脚本将比较两个文件并将文件1中的唯一行附加到文件2。
因此,为了更加客观: 每5分钟使用一次curl递归下载的日志文件数据将覆盖名为temp.txt的优良名称。
curl -X GET https://anypoint.mulesoft.com/cloudhub/api/v2/applications/app-name/instances/5y83962206n79e114d530a41-1/log-file -H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' -H 'Cache-Control: no-cache' -H 'X-ANYPNT-ENV-ID: Sandbox' > temp.txt
现在,我还有一个名为backup.txt的文件,需要将其与temp.txt进行比较并添加唯一的内容。出现以下情况
到目前为止,我可以使用linux的 comm 实用工具
在某些情况下,temp.txt完全从第一行开始就有新内容。
这是我面临的挑战,无法继续前进。
我从某一个SO链接中使用了 awk
awk 'FNR==NR {a[$0]++; next} !a[$0]' file2.txt file1.txt >> file2.txt
,但是当第一行和第二行有相似行时,它将失败。它省略了这些行!例如:如果重复的公共行被忽略,则第三和第四次运行图像中的json。
“ httpStatus”:400,“ errorOccurred”:true”
在使用awk时,上述字段将被忽略,从而导致数据丢失。
任何帮助都非常感谢!我还没有Java代码,但我主要是在这里寻求逻辑帮助。
致谢
考施克
答案 0 :(得分:0)
如果具有备份的所有内容和一些新行,为什么不拥有新下载文件的副本?