用awk或sed比较两个文件

AWE*_*AWE 2 shell awk text sed

这一定很容易

这是file1(一列)

1
2
3
4
5
6
7
8
9
Run Code Online (Sandbox Code Playgroud)

这里是file2(两列)

2 yay
3 ups
4 wow
8 hey
Run Code Online (Sandbox Code Playgroud)

必须有一个简单的单行内容来打印file1中与file2不匹配的行

Ken*_*ent 14

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

或者使用-v加入,正如@Michael建议的那样:

join -v1 file1 file2
Run Code Online (Sandbox Code Playgroud)

两者都会打印:

1
5
6
7
9
Run Code Online (Sandbox Code Playgroud)

  • @Jaypal awk在文件中保存file2,索引是field1; 然后为file1中的每一行检查它是否是数组的索引,进行比较.++没有什么特别之处,但为元素设置了一个值.一个[$ 1] = 1; 也有效.但++打字速度更快.:) (3认同)