比较两个排序好的文件的方法—— comm
来源:互联网 发布:淘宝买完东西就下架了 编辑:程序博客网 时间:2024/06/07 10:16
Linux 中的 comm 命令可以让用户按行比较两个已经排序好的文件。在本教程中,我们将使用一些浅显易懂的例子来讨论这个命令行工具。在开始之前,请注意,本教程中提到的所有例子都已经在 Ubuntu 16.04LTS 版本中测试过。.
下面的例子将会告诉你 comm 命令是如何工作的。。
要使用comm 命令比较两个排序好的文件,只需要把它们的名字作为comm 命令的参数。下面是通常的语法:
comm [name-of-first-file] [name-of-second-file]
比如,假设file1 和file2 是这种情况下的两个文件。前者包含下面几行内容:
001056127258
而后者包含下面几行内容:
002056167369
此时,comm命令的输出如下图所示:
comm file1 file2
你可以看到,输出包含 3 列。第一列是仅包含在file1中的内容,第二列是仅包含在 file2 中的内容,最后,第三列是两个文件中均包含的内容。
如果你想,你可以不输出 comm命令输出中的某些列。对于该特性,你有三个命令行选项可用:-1、-2 和 -3 。正如你所猜想的,这些数字表示你不想输出的列。
比如,下面这个命令将会不输出上面例子中的第三列:
comm -3 file1 file2
因此,你可以看到,第三列并没有输出。
注意,你可以通过一个单一命令同时不输出多列内容。比如:
comm -12 file1 file2
上面这个命令将会不输出第一、二列。
正如我们所知道的,comm 只可用于排序好的文件。如果发现其中一个文件未排序好,那么便会在输出中产生一条信息来告诉用户。比如,我们交换 file1 的第一行和第二行,然后与 file2 进行比较。下面是该命令的输出:
你可以看到,这个命令产生一个输出告诉我们:file1 还没有排序好。此时,如果你不想让这个工具检查输入是否已经排序好,那么你可以使用 --nocheck-order 选项:
comm --nocheck-order file1 file2
你可以看到,前面出现的提示信息已经消失了。
注意,如果你想明确告诉 comm 命令来检查输入文件是否排序好,那么你可以使用 --check-order选项。
默认情况下,comm 命令的输出列之间是以空格分隔的。然而,如何你想使用一个自定义字符串作为分隔符,那么你可以使用 --output-delimiter选项。使用该选项时需要指定你想用来作为分隔符的字符串。
comm --output-delimiter=+ file1 file2
比如,我们使用加号来作为分隔符:
默认情况下,comm 命令的输出行以新行终止。然而,如果你想,那么你可以改为以
字符终止,只需要使用-z 选项即可:
comm -z file1 file2
comm 命令并没有特别多的特性性,我们在这儿已经讨论了它的绝大多数命令行选项。只需要理解和练习在这篇教程中讨论的内容,那么你便可以在日常工作中知道如何使用这个工具了。如果你有任何问题或者疑问,请前往该命令的 man 手册,或者在下面评论。
- 比较两个排序好的文件的方法—— comm
- comm比较两个文件的异同
- Shell comm比较文件命令的使用
- linux下的comm和diff命令:用来比较两个文件的不同之处
- webstorm 比较两个文件差异的方法
- 比较两个文件(comm、diff和cmp)
- comm 比较两个文件中相同不同行
- linux:使用comm命令比较两个文件:交集、差
- 文件比较命令comm
- comm命令比较文件
- 比较好的冒泡排序
- 求两个文件的共同部分或者差异部分--comm命令
- 两个比较好的技术网站
- 下载电子书比较好的两个网站
- 分享两个比较好的PodCast
- eclipse两个比较好用的功能
- bootstrap两个比较好的网站
- magento两个比较好的运费插件
- 计算一个字符串中每一个字符出现的次数
- 使用MFC创建并调用ActiveX控件
- CUDA By Examples 5
- POI(excel)
- 如何评估自己的购房能力?购房预算含哪些?
- 比较两个排序好的文件的方法—— comm
- Activity 的四种启动模式
- opencv3-python目标跟踪—基本的运动检测
- java.lang.IllegalArgumentException: No SqlMapClient specified 异常解决方案
- H5新增的一些标签
- 字节、字、bit、byte的关系
- tp5,自定义命令行,跑索引。xunsearch+tp5索引
- Facebook Live的高可用架构
- 第一个java:Hello World