【问题标题】:How to compare 2 files in bash then delete the ones in the first file that do not match with the second file如何在bash中比较2个文件,然后删除第一个文件中与第二个文件不匹配的文件
【发布时间】:2016-10-31 14:49:02
【问题描述】:

所以在我有点蹩脚地解释它之前,但这是我的老板所面临的一个挑战,即仅使用基本的 bash 命令来创建此代码以基本上做到这一点:

while read line for file1.txt do; 在 file2.txt 中搜索匹配的行 如果找到匹配行打印到 file3.txt;否则转到 file1.txt 中的下一行并循环重复,直到完成 file1.txt 读取。

我不知道该怎么做,但我希望这会让事情变得更容易。我不能使用 diff comm 或其他任何东西,因为他说这很容易。

【问题讨论】:

  • 您是否打算将 1.txt 与 2.txt 进行比较和替换?那你为什么需要比较?继续用 2.txt 替换 1.txt
  • 请显示1.txt2.txt 和预期输出的示例。另外,到目前为止,您尝试过什么?
  • 我刚刚用 2 个文件更新了它,并在底部更好地解释了为什么只是替换不起作用
  • 下一次发布,例如每个文件的 4 行,其中一个不同的行和预期的输出。
  • 我从来没有一个老板愿意让我不干活,而是给我“挑战”去做。

标签: linux bash compare


【解决方案1】:
# show the diff
diff 2.txt 1.txt

# update 1.txt to match
cp 2.txt 1.txt

【讨论】:

  • 它必须完全在 bash 中,没有工具可以帮助
  • @mikedavidson 为什么?
  • 我的老板是个固执己见的人
  • 并阅读以上内容,因为最终目标是在整个系统和 pol 文件之间进行比较,然后编辑 pol 文件以匹配系统
  • 不,我实际上有一位老板阅读了上面的内容,我只是想自学这一点,因为我最终将不得不使用系统和策略文件来做到这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
相关资源
最近更新 更多