给定两个文件,我想编写一个 shell 脚本,从 file1 读取每一行并检查它是否在 file2 中。如果没有找到一行,它应该输出两个不同的文件并退出。这些文件可以包含字数或任何内容。例如 :
文件1:
Hi!
1234
5678
1111
hello
Run Code Online (Sandbox Code Playgroud)
文件2:
1111
5678
1234
Hi!
hello
Run Code Online (Sandbox Code Playgroud)
在这种情况下,两个文件应该相等。如果 file2 有“你好!!!” 而不是“你好”,那么文件是不同的。我正在使用 bash 脚本。我怎样才能做到这一点。我需要在嵌套循环中执行它并不重要,但我认为这是唯一的方法。谢谢你的帮助。
Dou*_*ris 11
diff
设置其退出状态以指示文件是否相同。退出状态可在特殊变量中访问$?
。您可以通过以下方式扩展 Ignacio 的答案:
diff --brief <(sort file1) <(sort file2) >/dev/null
comp_value=$?
if [ $comp_value -eq 1 ]
then
echo "do something because they're different"
else
echo "do something because they're identical"
fi
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 10
在 bash 中:
diff --brief <(sort file1) <(sort file2)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
80137 次 |
最近记录: |