如果想对两个有序的文件进行比较,可以使用comm命令。
语法:comm [- 123 ] file1 file2
说明:该命令碰岩是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用“- ”,则表示从标准输入读取。
comm -1 不显示只出现在第一个文件的行。
comm -2 不显示只出现在第二个文件的行。
comm -3 不显示同时出现在圆吵漏两个文件的行。
comm file1 file2 显示三列,第一列代表只出现在file1的行,第二列代表只出现在file2的行,第三列代表俩个橘烂文件同时出现的行
comm -12 显示两个文件同时出现的行 也就是交集
comm -13 显示只出现在第二个文件的行
comm -23 显示只出现在第一个文件的行
例如:假设要对文件myfile1和myfile2进行比较
$ cat myfile1
main( )
{
float a,b, i, j ,z
a=i=10 b=j=5
z= i + j
printf(“z=%d\\\\n”,z)
}
$ cat myfile2
#include<stdio.h >
main( )
{
float i, j ,z
i=10 j=5
z= i + j
printf(“z=%f\\\\n”,z)
}
$ comm - 12 myfile1 myfile2
main( )
{
z= i + j
}
就只显示文件myfile1和myfile2中共有的行。
比较两个文件内容的不同,主要有历烂棚comm和diff两个命令。
主要用法:comm file1.txt file2.txt
注历仿:在comm比较之前需要对两肢则个文件进行sort !!!
可以输出在仅第一个文件里出现的、仅在第二个文件里出现的和两个文件共有的内容:
comm -1 file1.txt file2.txt # 不显示第一个文件特有的内容,显示第二个文件特有的内容和共有的内容
comm -2 file1.txt file2.txt # 不显示第二个文件特有内容
comm -3 file1.txt file2.txt # 不显示共有
comm -12 file1.txt file2.txt # 第一个和第二个共有
comm -23 file1.txt file2.txt # 第一个特有
comm -13 file1.txt file2.txt # 第二个特有
也可以专门比较某两列或某几列:
comm -12 <(sort file1.txt | cut -f1) <(sort file1.txt | cut -f2.txt) # 这个只能在前台运行
diff可以直接输出比较结果,对第一个文件提出修改建议使得第一个文件与第二个文件一致。
创建两个文件:cat file1.txt
one
two
three
第二个文件: file2.txt
one
two
文件夹内容比较:
diff -ruNa dir1/ dir2/
-------------------------------------------------------------------------------------------------------------------------------------------------------------I'm a line ! Thanks !----------------------------------------------------------------------------------------------------------------
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)