时间:2023-06-02 16:16:41 来源: 人气:
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欢迎你的加入,