我有两个文件,一个是其他文件的子集,我想获得一个文件,其中包含的内容并不常见。例如
File1中
apple
mango
banana
orange
jackfruit
cherry
grapes
eggplant
okra
cabbage
文件2
apple
banana
cherry
eggplant
cabbage
结果文件,上述两个文件的区别
mango
orange
jackfruit
grapes
okra
对此有任何想法都表示赞赏。
答案 0 :(得分:11)
您可以对文件进行排序,然后使用comm
:
$ comm -23 <(sort file1.txt) <(sort file2.txt)
grapes
jackfruit
mango
okra
orange
您可能还想使用comm -3
代替comm -23
:
-1 suppress lines unique to FILE1 -2 suppress lines unique to FILE2 -3 suppress lines that appear in both files
答案 1 :(得分:3)
1只有一个实例
2仅限于第一个文件
3仅在第二个文件中
答案 2 :(得分:2)
使用awk,无需排序(减少开销)
$ awk 'FNR==NR{f[$1];next}(!($1 in f)) ' file2 file
mango
orange
jackfruit
grapes
okra
答案 3 :(得分:0)
<强> 1。文件不常见的文件
diff --changed-group-format="%<" --unchanged-group-format="%>" file1 file2
<强> 2。文件唯一的第一个文件
diff --changed-group-format="%<" --unchanged-group-format="" file1 file2
第3。文件唯一的第二个文件
diff --changed-group-format="" --unchanged-group-format="%>" file1 file2
希望它适合你