Awk 找出两个文件之间的差异
我有以下情况: file1.dat类似于:Awk 找出两个文件之间的差异,awk,Awk,我有以下情况: file1.dat类似于: 1 2 1 3 1 4 2 1 1 2 2 1 2 3 3 4 文件2.dat类似于: 1 2 1 3 1 4 2 1 1 2 2 1 2 3 3 4 我想找出第二个文件与第一个文件之间的差异。我试过使用grep-v-f file1 file2,但我真正的文件比这两个文件大,当我尝试使用它时,shell永远不会停止工作 结果应该是: 2 3 3 4 文件被排序,并且它们具有相同数量的元素。有没有办法找到awk的解决方案?似乎需要file2中不
1 2
1 3
1 4
2 1
1 2
2 1
2 3
3 4
文件2.dat类似于:
1 2
1 3
1 4
2 1
1 2
2 1
2 3
3 4
我想找出第二个文件与第一个文件之间的差异。我试过使用grep-v-f file1 file2,但我真正的文件比这两个文件大,当我尝试使用它时,shell永远不会停止工作
结果应该是:
2 3
3 4
文件被排序,并且它们具有相同数量的元素。有没有办法找到awk的解决方案?似乎需要
file2
中不在file1
中的行:
$ awk 'FNR==NR{a[$0];next}!($0 in a)' file1 file2
2 3
3 4
但是,使用comm
更简单:
$ comm -13 file1 file2
2 3
3 4
似乎希望
file2
中的行不在file1
中:
$ awk 'FNR==NR{a[$0];next}!($0 in a)' file1 file2
2 3
3 4
但是,使用comm
更简单:
$ comm -13 file1 file2
2 3
3 4
可能重复:file2.dat中的所有行在file1.dat中不存在为什么
13
不在结果中?它在文件1中,但不在文件2中。是不是有区别?可能重复:file2.dat中的所有行在file1.dat中都不存在为什么13
不在结果中?它在文件1中,但不在文件2中。这是不同的,对吗?为什么是-13?这意味着什么?阅读man comm
-1
以抑制文件1特有的行,阅读-3
以抑制两者共有的行。。在file2.comm中只保留唯一的行是一个很好的建议。我用它来比较一个单独的values@ChrisSeymour . 如果我想要在两个文件中都丢失的记录,我该怎么做呢?不仅仅是文件2,不想使用diff,而是awk来获取丢失的记录以及文件名。为什么是-13?这意味着什么?阅读man comm
-1
以抑制文件1特有的行,阅读-3
以抑制两者共有的行。。在file2.comm中只保留唯一的行是一个很好的建议。我用它来比较一个单独的values@ChrisSeymour . 如果我想要在两个文件中都丢失的记录(不仅仅是file2,不想使用diff,而是awk)来获取丢失的记录以及文件名,我应该做什么更改。