linux比较文件输出不同的内容

王朝学院·作者佚名  2016-08-08
窄屏简体版  字體: 小  |  中  |  大  |  超大  

linux比较文件输出不同的内容

目前据我所了解的有如下几种方法,来比较两个文件的行,以输出他们的不同之处:

1) comm mission:

comm [-123] file1 file2 [> sfile]

NOTE: file1,file2 must be firstly sorted !

-1/2/3 means: -1 ----- rid the only retained contents in file1

-2 ----- rid the only retained contents in file2

-3 ----- rid the communal lines in both two files

正如,上面说的那样,comm命令运用的前提是针对两个sorted文件!

该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用“- ”,则表示从标准输入读取。

选项1、2或3抑制相应的列显示。例如comm - 12就只显示在两个文件中都存在的行;comm - 23只显示在第一个文件中出现而未在第二个文件中出现的行;comm - 123则什么也不显示。

2) grep mission:

grep -v -f file1 file2

/*注::此法在对比数字时候比较凑效果,文本对比不建议使用*/

3) awk mission:

awk '{PRint NR,$0}' file1 file2 |sort -k2|uniq -u -f 1|sort -k1|awk '{print $2}'

或者:

awk '{print $0}' file1 file2 |sort|uniq -u

4) diff mission:

diff [-opt] file1 file2

注:更多精彩教程请关注三联电 脑教程栏目,三联电脑办公群:189034526欢迎你的加入

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航