澳门太阳娱乐集团官网-太阳集团太阳娱乐登录

文本比较命令(comp)
分类:操作系统

comp命令:

 

comm命令可用于三个公文之间的比较。它有繁多不错的选项可用来调动出口,以便大家执
行交集、求差(difference)以及差集操作。
 交集:打字与印刷出多个公文所共有的行。
 求差:打字与印刷出钦赐文件所饱含的且互分裂样的这么些行。
 差集:打字与印刷出含有在文件a中,但不分包在另外钦点文件中的那么些行。

  // 描述:

cmp

只要今后有八个文件a和b,内容分别是:a(1,2,3),b(3,4,5)。那么,对那多少个公文实行操作的结果如下。
交集:3。
求差:1,2,4,5。
差集(a):1,2。

    逐字节相比很多个文本或文件集的情节。 若是在一向不参数的情事下利用,comp会提醒您输入要相比的公文。

[功用表明]

需求静心的是comm必得利用排过序的文书作为输入。请看看上面包车型客车例子:

  // 语法:

正如文件

[root@host1 shell]# echo -e "1n3n8n2" > a.txt
[root@host1 shell]# cat a.txt 
1
3
8
2
[root@host1 shell]# echo -e "1n5n7n2" > b.txt
[root@host1 shell]# cat b.txt 
1
5
7
2
[root@host1 shell]# sort a.txt  -o a.txt ; sort b.txt -o b.txt

    comp [<Data1>] [<Data2>] [/d] [/a] [/l]  [/c] [/n=<Number>]

#cmp可以比较任何项指标文书,并在标准输出设备上显示文件的首先次分歧处的行号和字节号,分别从1上马,但是日常用于比较文本文件

(1) 首先实行不带其余采取的comm:

  // 参数:

[语法格式]

[root@host1 shell]# comm a.txt b.txt 
        1
        2
3
    5
    7
8

    <data1> :  钦命要相比的首先个文本或文件集的职责和称号。 能够运用通配符(*和?)钦命四个文本。

Cmp[参数][文件1][文件2][skip1][skip2]

出口的首先列满含只在a.txt中出现的行(a的差集),第二列包括只在b.txt中冒出的行(b的差集),第三列
蕴涵a.txt和b.txt中一样的行(交集)。各列以制表符(t)作为定界符。

    <data2>:   钦点要比较的第三个文本或文件集的职位和称号。 能够应用通配符(*和?)钦定多少个公文。

[分选参数]

(2) 为了打字与印刷七个文本的插花,大家须要删除第一列和第二列,只打字与印刷出第三列:

    /d:(decimal)    以十进制格式展现差距。 (私下认可格式为十六进制。)

参数

说明

-l

显示两个比较文件每个不同点的字节号和字节数,前者以十进制显示,后者以八进制显示

-s

不显示错误信息就退出

[root@host1 shell]# comm -1 -2 a.txt b.txt 
1
2

    /a:     将距离展现为字符。

 

(3) 打字与印刷出几个公文中不平等的行:

    /l:(line number) 展现现身反差的行号,实际不是体现字节偏移量。

comm

[root@host1 shell]# comm -3 a.txt b.txt 
3
    5
    7
8

    /c:     实施不区分轻重缓急写的可比。

[职能表达]

在这一次的输出中,那七个唯一出现的运用得列中冒出了空白字段。所以这两列在同样
行上不会同期都冒出内容。为了提超过口结果的可用性,需求删除空白字段,将两
列合併成一列:

    /n     仅比较为各类文件钦命的行数,纵然文件大小差别。

正如文件

3
5
7
8

  // 说明:

 #comm可逐行比较七个排序的公文,并基于客商的钦定选项输出结果到荧屏恐怕再一次定向到一个文书,用于有序文件的可比

(4) 要扭转标准的出口,得使用上边包车型大巴命令:

拍卖 Data1和Data2的异样景况:
  --> 假诺省略Data1或Data2的必不可缺组件,也许轻易Data2,comp会提示您输入缺乏的新闻。
  --> 借使Data1仅富含驱动器号或尚未公文名的目录名,则comp会将钦赐目录中的全部文件与Data1中钦命的公文进行比较。
  --> 如若Data2仅富含驱动器号或目录名,则Data2的暗中认可文件名与Data第11中学的暗中认可文件名同样。
  --> 假使comp找不到您钦命的文本,它会提示您一条消息,以明确是或不是要相比更加多文本。

[语法格式]

[root@host1 shell]# comm -3 a.txt b.txt | sed 's/^t//'
3
5
7
8

比较不一样岗位的公文:
  Comp能够比较一致驱动器或不一致驱动器上的文本,以及一样目录或区别目录中的文件。 当comp比较文件时,它会显得它们的地方和文件名。

Comm[参数]文件1 文件2 [>|>>文件名]

(5) 通过删除无需的列,大家就足以独家获得a.txt和b.txt的差集。
a.txt的差集
$ comm a.txt b.txt -2 -3
-2 -3 删除第二列和第三列。
b.txt的差集
$ comm a.txt b.txt -1 -3
-1 -3 删除第一列和第三列。

正如不一样大小的文件:
  您必得钦点 /n 来相比分歧尺寸的文本。 纵然文件大小不一致且未指定/n,则comp将展现以下消息:

[选料参数]

干活规律:

Files are different sizes

参数

说明

-1

抑制第1行的显示,既在文件1中出现的内容不显示

-2

抑制第2行的显示,既在文件1中出现的内容不显示

-3

抑制第3行的显示,既在文件1和文件2中同时出现的内容不显示

comm的一声令下行选项能够根据供给对出口进行格式化,比如:
 -1 从出口中除去第一列;
 -2 从出口中去除第二列;
 -3 从出口中去除第三列。
  在变化统一输出时,sed命令通过管道获取comm的输出。它删除行首的 t字符。sed中的s
表示替换(substitute)。/^t/ 相配行前的 t(^是行首标识)。//(五个/操作符之间未有其余
字符)是用来替换行首的t的字符串。如此一来,就删除了独具行首的t。
  差集操作允许你相比三个公文,打字与印刷出只在a.txt或b.txt中出现的行。当a.txt和b.txt作为comm
命令的参数时,输出中的第一列是a.txt绝对于b.txt的差集,第二列是b.txt相对于a.txt的差集。

Compare more files (Y/N)?

只是做的二个总括 如有不对,请各位大咖商议指教。

  // 实例:

                                          此致敬礼

    图片 1

版权表明

              ### 那几个 comp 命令显示出来的有些都不狼狈,明显未有 fc 赏心悦目。照旧用 fc 习贯些!!!

本计算所波及到的剧情 全体摘抄自《Linux命令完全技艺宝典》张栋

本文由澳门太阳娱乐集团官网发布于操作系统,转载请注明出处:文本比较命令(comp)

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文