操作系统

当前位置:永利皇宫463登录 > 操作系统 > 永利皇宫463登录正如文件,五个公文比较之comm命

永利皇宫463登录正如文件,五个公文比较之comm命

来源:http://www.makebuLuo.com 作者:永利皇宫463登录 时间:2019-11-03 23:51

comp命令:

 

comm命令可用于多个文件之间的比较。它有相当多不易的选项可用来调治出口,以便我们执
行交集、求差(difference卡塔 尔(英语:State of Qatar)以至差集操作。
 交集:打字与印刷出四个公文所共有的行。
 求差:打字与印刷出钦点文件所含有的且互不雷同的那多少个行。
 差集:打字与印刷出含有在文书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的差集卡塔 尔(英语:State of Qatar),第二列包括只在b.txt中现身的行(b的差集卡塔 尔(英语:State of Qatar),第三列
含有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会将点名目录中的全部文件与Data第11中学内定的文书实行比较。
  --> 倘若Data2仅包涵驱动器号或目录名,则Data2的私下认可文件名与Data第11中学的暗中同意文件名相近。
  --> 若是comp找不到你钦点的文件,它会唤醒您一条消息,以鲜明是或不是要相比更加多文件。

[语法格式]

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

永利皇宫463登录,相比差别岗位的公文:
  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(^是行首标记卡塔 尔(英语:State of Qatar)。//(三个/操作符之间从未别的
字符卡塔尔国是用来替换行首的t的字符串。如此一来,就删除了拥有行首的t。
  差集操作允许你相比较八个文本,打字与印刷出只在a.txt或b.txt中冒出的行。当a.txt和b.txt作为comm
命令的参数时,输出中的第一列是a.txt相对于b.txt的差集,第二列是b.txt相对于a.txt的差集。

Compare more files (Y/N)?

只是做的贰个总括 如有不对,请各位大牌争辨指教。

  // 实例:

                                          此致敬礼

    永利皇宫463登录 1

版权注解

              ### 那一个 comp 命令呈现出来的一点都倒霉看,显明未有 fc 美观。如故用 fc 习于旧贯些!!!

本计算所关联到的剧情 全体摘抄自《Linux命令完全才能宝典》张栋

本文由永利皇宫463登录发布于操作系统,转载请注明出处:永利皇宫463登录正如文件,五个公文比较之comm命

关键词:

上一篇:C语言的文件操作,C语言文件操作

下一篇:没有了