我有 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) 求逆