difference between the content of two files

岁酱吖の 提交于 2019-12-17 16:23:01

问题


I have two files one file subset of other and i want to obtain a file which has contents not common to both.for example

File1

apple
mango
banana
orange
jackfruit
cherry
grapes
eggplant
okra
cabbage

File2

apple
banana
cherry
eggplant
cabbage

The resultant file, difference of above two files

mango
orange
jackfruit
grapes
okra

Any ideas on this are appreciated.


回答1:


use awk, no sorting necessary (reduce overheads)

$ awk 'FNR==NR{f[$1];next}(!($1 in f)) ' file2 file
mango
orange
jackfruit
grapes
okra



回答2:


You can sort the files then use comm:

$ comm -23 <(sort file1.txt) <(sort file2.txt)
grapes
jackfruit
mango
okra
orange

You might also want to use comm -3 instead of comm -23:

  -1              suppress lines unique to FILE1
  -2              suppress lines unique to FILE2
  -3              suppress lines that appear in both files



回答3:


1 Only one instance , in either

  • cat File1 File2 | sort | uniq -u

2 Only in first file

  • cat File1 File2 File2 | sort | uniq -u

3 Only in second file

  • cat File1 File1 File2 | sort | uniq -u



回答4:


1. Files uncommon to both files

diff --changed-group-format="%<" --unchanged-group-format="%>" file1 file2

2. File unique to first file

diff --changed-group-format="%<" --unchanged-group-format="" file1 file2

3. File unique to second file

diff --changed-group-format="" --unchanged-group-format="%>" file1 file2

Hope it works for you



来源:https://stackoverflow.com/questions/3832988/difference-between-the-content-of-two-files

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!