gpt4 book ai didi

linux - 逐行比较两个文件并在第二个文件 [linux/java] 中存储唯一数据

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:57 28 4
gpt4 key购买 nike

我正在尝试制作一个 shell 脚本来比较两个文件并将文件 1 中的唯一行附加到文件 2。

所以,更客观地说:名为 temp.txt 的文件将被每 5 分钟使用 curl 递归下载的日志文件数据覆盖。

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 进行比较并添加任何唯一的内容。出现以下场景

  1. 在第一次运行期间,整个 temp.txt 被复制到 backup.txt 1st Run File content
  2. 在第二次运行中,只有新行(如果有的话)应该添加到 backup.txt 2nd Run File content

我能够使用 linux 的 comm 工具实现到这里

也可能存在 temp.txt 完全包含第一行的新内容的情况。

  1. 在第 3 次运行的场景中,我们再次需要将整个数据附加到 backup.txt 3rd Run File content
  2. 在第 4 轮中,与第 3 轮的内容相比,我们将有新的行,但与第 1 轮和第 2 轮的内容相比完全不同。 4th Run File content

这是我面临的挑战,无法继续进行下去。

我从其中一个 SO 链接使用了 awk

awk 'FNR==NR {a[$0]++; next} !a[$0]' file2.txt file1.txt >> file2.txt

但是当第一次和第二次运行有相似的行时它会失败。它省略了那些行!例如:如果忽略重复的公共(public)行,则第 3 次和第 4 次运行图像中的 json。

"httpStatus": 400, "errorOccurred": true"

以上字段在使用 awk 时被忽略导致数据丢失。

非常感谢任何帮助!我还没有 Java 代码,但我主要在这里寻找逻辑帮助。

问候

考希克

最佳答案

如果新下载的文件包含备份的所有内容和一些新行,为什么不复制它呢?

关于linux - 逐行比较两个文件并在第二个文件 [linux/java] 中存储唯一数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52058499/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com