比较UNIX中的两个文件

Bal*_*ays 16 unix

我想比较两个文件[unsorted] file1和file2.我想做file2 - file1 [差异]而不管行号?差异不起作用.

Bal*_*ays 23

我通过使用comm获得了解决方案

comm -23 file1 file2 
Run Code Online (Sandbox Code Playgroud)

会给你想要的输出.

无论如何,首先需要对文件进行排序.


ton*_*nio 22

好吧,您可以先对文件进行排序,然后对已排序的文件进行区分.

sort file1 > file1.sorted
sort file2 > file2.sorted
diff file1.sorted file2.sorted
Run Code Online (Sandbox Code Playgroud)

您还可以过滤输出以报告file1中缺少file1的行:

diff -u file1.sorted file2.sorted | grep "^+" 
Run Code Online (Sandbox Code Playgroud)

如评论中所示,您实际上不需要对文件进行排序.相反,您可以使用流程替换并说:

diff <(sort file1) <(sort file2)
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,bash有前三个命令的快捷方式:`diff <(sort file1)<(sort file2)`. (3认同)