找出两个文件之间的区别

Val*_*tti 1 awk

我有以下情况:

file1.dat如下:

1 2
1 3
1 4
2 1
Run Code Online (Sandbox Code Playgroud)

和file2.dat是这样的:

1 2
2 1
2 3
3 4
Run Code Online (Sandbox Code Playgroud)

我想找到第一个文件中的第二个文件之间的差异.我尝试过机智,grep -v -f file1 file2但我的真实文件比这两个更大,当我尝试使用它时,shell永远不会结束.

结果应该是:

2 3
3 4
Run Code Online (Sandbox Code Playgroud)

文件已排序,它们具有相同数量的元素.有没有找到awk解决方案的方法?

Chr*_*our 10

好像你想要的行file2不在file1:

$ awk 'FNR==NR{a[$0];next}!($0 in a)' file1 file2
2 3
3 4
Run Code Online (Sandbox Code Playgroud)

但是它使用起来更简单comm:

$ comm -13 file1 file2
2 3
3 4
Run Code Online (Sandbox Code Playgroud)

  • 读`man comm``-1`来压缩文件1和`-3`的唯一行以抑制两者共有的行...只留下file2中唯一的行. (4认同)