比较 Unix 中两个不同文件之间的数据

比较 Unix 中两个不同文件之间的数据

我有 2 个不同的文件 -

文件1

2
4
6
8
10
12

文件2

2
3
5
6
10
12

我想比较 2 个文件并获取文件 1 中但不在文件 2 中的输出数据-

输出

4
8

我正在使用下面的命令,但没有得到所需的输出-

通讯 -23 文件1 文件2

答案1

为了comm正常工作,两个文件都必须按字典顺序排序,而不是按数字排序。您可以在comm调用之前对文件进行排序

sort -o file1 file1
sort -o file2 file2 

然后:

$ comm -23 file1 file2
4
8

comm或者,如果您的 shell 支持进程替换,您可以在调用 的同时对文件进行排序:

$ comm -23 <( sort file1 ) <( sort file2 )
4
8

答案2

您可以使用 grep

grep -F -x -f 'File2' -v 'File1'

File2 (-f) 中固定字符串 (-F) 的模式

用于-x匹配整行。否则,由于 File2 中的“12”,File1 中的“0123”将被排除在输出之外。

找到相似的直线并用 (-v) 求逆

相关内容