linux比较文件输出不同的内容
发布网友
发布时间:2022-04-23 14:43
我来回答
共1个回答
热心网友
时间:2023-05-25 08:27
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
-u4)
diff
mission:
diff
[-opt]
file1
file2