在订单不重要的两个文件中查找不常见的行

时间:2013-03-15 18:36:54

标签: bash shell awk

我有两个文件,如

1 2
1 3
1 4
2 3
2 6

3 1 
6 2
1 4

我想找到file2中的行不在file1中,其中字段的顺序并不重要。输出应为:

1 2
2 3

我尝试使用awk 'FNR==NR{a[$0];next}!($0 in a)' file1 file2,但我认为如果字段颠倒则不起作用。

2 个答案:

答案 0 :(得分:3)

允许字段顺序无关紧要的小改动:

$ awk 'FNR==NR{a[$1" "$2];next}!($1" "$2 in a||$2" "$1 in a)' file2 file1
1 2
2 3

注意:您需要先提供file2

答案 1 :(得分:0)

sdiff -s file1 file2

并重新格式化输出