comm命令

comm命令用于比较两个已排过序的文件,该命令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成3列显示:第1列仅是在第1个文件中出现过的列,第2列是仅在第2个文件中出现过的列,第3列则是在第1与第2个文件里都出现过的列,若给予的文件名称为-,则comm命令会从标准输入设备读取数据。

语法

comm [OPTION]... FILE1 FILE2

参数

  • -1: 禁止列1(FILE1唯一的行)。
  • -2: 禁止列2 (FILE2唯一的行)。
  • -3: 禁止列3(出现在两个文件中的行)。
  • --check-order: 检查输入是否正确排序,即使所有输入行都是可配对的。
  • --nocheck-order: 不检查输入是否正确排序。
  • --output-delimiter=STR: 用字符串STR分隔列。
  • -z, --zero-terminated: 指定行分隔符是NUL,不是换行符。
  • --help: 显示帮助消息。
  • --version: 输出版本信息。

示例

recipe.txt文件与shopping-list.txt文件内容,这两个文件不同,但许多行是相同的,并非所有的配方成分都在购物清单上,也不是购物清单上的所有成分都是食谱的一部分。

# recipe.txt
All-Purpose Flour
Baking Soda
Bread
Brown Sugar
Chocolate Chips
Eggs
Milk
Salt
Vanilla Extract
White Sugar # shopping-list.txt
All-Purpose Flour
Bread
Brown Sugar
Chicken Salad
Chocolate Chips
Eggs
Milk
Onions
Pickles
Potato Chips
Soda Pop
Tomatoes
White Sugar

使用comm命令,其将读取这两个文件并给我们三列输出,在这里,每行输出的开头都有012个制表符,将输出分成三列:

  • 第一列zero tabs是只出现在第一个文件中的行。
  • 第二列one tabs是只出现在第二个文件中的行。
  • 第三列two tabs是出现在两个文件中的行。
comm recipe.txt shopping-list.txt
# All-Purpose Flour
#Baking Soda
# Bread
# Brown Sugar
# Chicken Salad
# Chocolate Chips
# Eggs
# Milk
# Onions
# Pickles
# Potato Chips
#Salt
# Soda Pop
# Tomatoes
#Vanilla Extract
# White Sugar

比较recipe.txt文件与shopping-list.txt文件,并禁用第1与第2列的输出。

comm -12 recipe.txt shopping-list.txt
# All-Purpose Flour
# Bread
# Brown Sugar
# Chocolate Chips
# Eggs
# Milk
# White Sugar

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.computerhope.com/unix/ucomm.htm
https://www.runoob.com/linux/linux-comm-comm.html
https://www.geeksforgeeks.org/comm-command-in-linux-with-examples/

comm命令的更多相关文章

  1. linux中comm命令用法

    linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令. comm命令功能:   选择或拒绝两个已排序的文件的公共的行. comm命令语法:comm [-12 ...

  2. comm命令——

    comm命令 :对已经有序的文件进行比较——第一列只在文件1中出现的文件,第二列只在文件2中出现的文件,第三列在文件1和文件2中同事出现的文件 请注意前提条件:             comm对文件 ...

  3. 两个文件比较之comm命令

    comm命令可用于两个文件之间的比较.它有很多不错的选项可用来调整输出,以便我们执行交集.求差(difference)以及差集操作. 交集:打印出两个文件所共有的行. 求差:打印出指定文件所包含的 ...

  4. Linux comm命令求出文件的交集、差集

    A(1,2,3)和B(3,4,5),A和B的交集是3,A对B的差集是1和2,B对A的差集是4和5,A和B求差的结果是1.2.4.5. 在Linux中可以使用comm命令求出这些集. [root@xue ...

  5. linux命令(50):comm命令的用法,求交集

    Linux comm命令 使用局限比较大,适用于特殊场合: Linux comm命令用于比较两个已排过序的文件. 排序:sort -u file 这项指令会一列列地比较两个已排序文件的差异,并将其结果 ...

  6. linux:使用comm命令比较两个文件:交集、差

    linux:使用comm命令比较两个文件:交集.差 comm命令可以按行比较两个排序好的文件,输出有3列:第一列是file1独有的.第二列是file2独有的,第三列是两者都有的,简单语法如下:NAME ...

  7. 原!linux comm命令文件 比较 输出交集,差集。

    文件内容大致如下: 112805|300011222483|OL海12卓|47397c33e36cdbed26637c50dd305973|2019-08-06 10:50:13|登B录123|suc ...

  8. Linux:- comm命令的妙用

    参数://假设a集.b集.ab交集 # comm [options] textA textB options: 1.表示a集除去ab交集重叠那部分: 2.表示b集除去ab交集重叠那部分: 3.表示ab ...

  9. linux的comm命令

    http://blog.csdn.net/apache6/article/details/5789669

  10. linux 命令之comm

    1. 简介 comm命令可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集.求差.以及差集操作. 交集:打印出两个文件所共有的行. 求差:打印出指定文件所包含的且不相同的行. 差集 ...

随机推荐

  1. 【SHELL】命令补全

    # 指定文件 dodo_path=/home/skull/work/scripts/dodo echo "hello skull" ## COMP_WORDS 是一个 bash 内 ...

  2. 使用Java分析器优化代码性能,解决OOM问题

    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 背景 最近我一直在做性能优化,对一个单机应用做性能优化.主要是 ...

  3. MongoDB的安装使用与监控

    MongoDB的安装使用与监控 下载 https://www.mongodb.com/try/download/community 我这边习惯于下载 Windows 的 MSI 进行安装 Linux ...

  4. iftop的学习与使用

    iftop的学习与使用 背景 前段时间一直进行netperf 等网络性能验证工具的学习与使用. 监控很多时候采用了 node-exporter + prometheus + grafana来进行观察 ...

  5. [转帖]浅析TiDB二阶段提交

    https://cloud.tencent.com/developer/article/1608073 关键内容说明: TiDB 对于每个事务,会涉及改动的所有key中,选择出一个作为当前事务的Pri ...

  6. [转帖]Java和Scala的前世今生

    第一部分:Java 计算机语言介绍 第一代语言:机器语言.指令以二进制代码形式存在 第二代语言:汇编语言.使用助记符表示一条机器指令 第三代语言:高级语言 C.Pascal.Fortran面向过程的语 ...

  7. [转帖]煮饺子与 docker、kubernetes 之间的关系

      前言:云原生的概念最近非常火爆,企业落地云原生的愿望也越发强烈.看过很多关于云原生的文章,要么云山雾罩,要么曲高和寡. 所以笔者就有了写<大话云原生>系列文章的想法,期望用最通俗.简单 ...

  8. 【转帖】查看mysql库大小,表大小,索引大小

    https://www.cnblogs.com/lukcyjane/p/3849354.html 说明: 通过MySQL的 information_schema 数据库,可查询数据库中每个表占用的空间 ...

  9. node借助jsonwebtoken生成token以及验证token是否过期

    生成token使用 jsonwebtoken 插件 我当时使用的版本"jsonwebtoken": "^9.0.0", cnpm i jsonwebtoken ...

  10. 【k哥爬虫普法】非法入侵计算机信息系统,获取1500万余条个人信息!

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...