我有2个文件号码清单(电话号码)
我正在寻找在第二个文件列出数的方法是不存在的第一个文件
我已经试过各种方法:
comm (getting some weird sorting errors)
fgrep -v -x -f second-file.txt first-file.txt (unsure of the result, there should be more)
谢谢
我有2个文件号码清单(电话号码)
我正在寻找在第二个文件列出数的方法是不存在的第一个文件
我已经试过各种方法:
comm (getting some weird sorting errors)
fgrep -v -x -f second-file.txt first-file.txt (unsure of the result, there should be more)
谢谢
grep -Fxv -f first-file.txt second-file.txt
基本上会在所有行second-file.txt
不匹配任何行first-file.txt
。 如果文件很大可能是缓慢的。
此外,一旦你的文件(使用排序sort -n
如果他们是数字),然后comm
也应该有工作。 它给什么错误? 试试这个:
comm -23 second-file-sorted.txt first-file-sorted.txt
您需要使用comm
:
comm -13 first.txt second.txt
将做的工作。
PS。 为了在命令行事务的第一和第二文件的。
还可能需要之前文件进行排序:
comm -13 <(sort first.txt) <(sort second.txt)
如果文件是数字加-n
选项sort
。
这应该工作
comm -13 <(sort file1) <(sort file2)
这似乎排序-n(数字)不能与通讯,它使用排序(字母)的内部工作
f1.txt
1
2
21
50
f2.txt
1
3
21
50
21应出现在第三列
#WRONG
$ comm <(sort -n f1.txt) <(sort -n f2.txt)
1
2
21
3
21
50
#OK
$ comm <(sort f1.txt) <(sort f2.txt)
1
2
21
3
50
cat f1.txt f2.txt | sort |uniq > file3