Linux中的comm命令用于逐行对比两个已排序的文本文件。本文通过简单易懂的实例,帮助读者掌握该工具的基本用法。所有示例均在Ubuntu 16.04 LTS系统中实际测试运行,确保结果准确可靠。通过具体操作演示,清晰展现comm命令的执行效果与应用场景,便于用户快速理解其工作原理和使用方式。
1、 使用comm命令比较两个已排序的文件时,只需将文件名作为参数输入,基本语法如下所示。
2、 例如,设file1与file2为当前情况下的两个文件,其中file1包含以下几行内容:
3、 后者包含以下几行内容:
4、 此时,comm命令的输出结果所示。
5、 可通过筛选或指定字段排除comm命令的特定列输出
6、 你可以选择不显示comm命令输出中的特定列,系统为此提供了三个选项:-1、-2 和 -3,分别对应禁止输出第一、第二或第三列。这些选项的功能与数字所指列数一致。有关这些工具的详细说明,可参考教材Linux就该这么学中的相关内容。
7、 例如,执行该命令将不会显示上述示例中的第三列内容。
8、 使用comm命令前需先对两个文件进行排序处理
9、 众所周知,comm 命令仅适用于已排序的文件。若任一输入文件未排序,系统将提示用户相关警告信息。例如,将 file1 的前两行位置互换后与 file2 进行比较,由于 file1 不再有序,执行命令时便会输出提示,说明文件未正确排序,影响结果准确性。
10、 可以看到,该命令的输出提示 file1 尚未排序。若不希望工具检测输入是否已排序,可使用 --nocheck-order 选项跳过此项检查,从而提高处理效率,避免不必要的验证步骤干扰操作流程。
11、 如何自定义分隔符来分割comm命令的输出列
12、 默认情况下,comm 命令输出的各列以空格分隔。若需使用自定义字符串作为分隔符,可通过 --output-delimiter 选项实现,只需在该选项后指定希望用作分隔符的具体字符串即可完成设置,从而改变默认的分隔方式,满足不同场景下的输出格式需求。
13、 例如,用加号作为分隔符号:
14、 将 comm 命令输出的换行符替换为 NUL 字符即可实现以 NUL 结尾
15、 默认时,comm命令的输出行以换行结束,但可根据需要更改为其他终止方式。
16、 NUL
17、 只需使用-z选项即可终止字符。
评论
更多评论