Linux文件比较命令的Comm命令

Linux文件比较命令的Comm命令,第1张

如果想对两个有序的文件进行比较,可以使用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 !----------------------------------------------------------------------------------------------------------------


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12309284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存