两个文件的内容之间的差异

时间:2010-09-30 17:01:23

标签: diff unix

我有两个文件,一个是其他文件的子集,我想获得一个文件,其中包含的内容并不常见。例如

File1中

apple
mango
banana
orange
jackfruit
cherry
grapes
eggplant
okra
cabbage

文件2

apple
banana
cherry
eggplant
cabbage

结果文件,上述两个文件的区别

mango
orange
jackfruit
grapes
okra

对此有任何想法都表示赞赏。

4 个答案:

答案 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只有一个实例

  • cat File1 File2 |排序| uniq -u

2仅限于第一个文件

  • cat File1 File2 File2 |排序| uniq -u

3仅在第二个文件中

  • cat File1 File1 File2 |排序| uniq -u

答案 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

希望它适合你