我需要比较两个文件,每个文件有一列,找到它们之间的差异,显示在第一个文件中找不到的数字0xxx.dat。
文件1
0458.dat
0460.dat
0472.dat
0476.dat
0489.dat
0498.dat
0502.dat
0504.dat
0508.dat
0509.dat
file2的
0457.dat
0458.dat
0459.dat
0460.dat
0461.dat
0462.dat
0463.dat
0464.dat
0465.dat
0466.dat
预期输出
0457.dat
0459.dat
0461.dat
0462.dat
0463.dat
0464.dat
0465.dat
0466.dat
答案 0 :(得分:2)
使用grep:
grep file2 -f file1 -v
-f
从文件中读取匹配模式。-v
发现不匹配而非匹配。这给出了:
0457.dat
0459.dat
0461.dat
0462.dat
0463.dat
0464.dat
0465.dat
0466.dat
答案 1 :(得分:1)
关注awk
可能会对您有所帮助。
awk 'FNR==NR{a[$0];next} !($0 in a){print $0 " is not found in File."}' file1 file2
如果您不需要像上面代码那样的文字is not found in File.
,那么以下内容可能会对您有所帮助。以下将NOT查找ID打印到名为Files_not_found_in_File1
的输出文件。
awk 'FNR==NR{a[$0];next} !($0 in a){print $0 > "Files_not_found_in_File1"}' file1 file2