文件的差集

找出所有文件A有但是文件B没有的行。

文件1:

file1
034J
025J-01
045k
089G-02
04J01

文件2:

file2
04J01
025J-01
038L-02

找出所有file1有但是file2没有的行:

awk 'NR==FNR {lines[$0]=1;next} !lines[$0]' file2 file1

结果:

034J
045k
089G-02

需要注意两个文件参数的位置,file1-file2就是file1在后file2在前;file2-file1就是file1在前file2在后:

awk 'NR==FNR {lines[$0]=1;next} !lines[$0]' file1 file1

结果:

038L-02

脚本保存成一个文件:

file_difference.awk
#! /usr/bin/awk -f
NR == FNR { lines[$0]=1; next } !lines[$0]

Last updated