嘉定网站建设电脑培训,保定软件开发公司,网站建设-信科网络,和韩国做贸易的网站目录
内容来源#xff1a;
【GUN】【comm】指令介绍
【busybox】【comm】指令介绍
【linux】【comm】指令介绍
使用示例#xff1a;
逐行比较两个排序后的文件 - 默认输出
逐行比较两个排序后的文件 - 如果一个文件的排序有问题#xff0c;那么反错#xff08;默认
【GUN】【comm】指令介绍
【busybox】【comm】指令介绍
【linux】【comm】指令介绍
使用示例
逐行比较两个排序后的文件 - 默认输出
逐行比较两个排序后的文件 - 如果一个文件的排序有问题那么反错默认
逐行比较两个排序后的文件 - 不检查文件是否已经排序
逐行比较两个排序后的文件 - 修改输出格式修改默认间隔符
逐行比较两个排序后的文件 - 统计每列的个数
逐行比较两个排序后的文件 - 默认输出中可以选择不输出某一列
常用组合指令
指令不常用/组合用法还需继续挖掘 内容来源 GUN Coreutils - GNU core utilities busybox v1.36.1 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客
【GUN】【comm】指令介绍
comm:逐行比较两个排序后的文件
comm 将通用的和唯一的行写入到两个输入文件的标准输出;文件名“-”表示标准输入。
简介:
comm [option]... file1 file2
在可以使用comm之前必须使用LC_COLLATE区域设置指定的排序序列对输入文件进行排序。如果输入文件以非换行符结束则会静默地添加换行符。没有选项的sort命令总是输出一个适合comm输入的文件。
如果没有选项comm将生成三列输出。第一列包含file1唯一的行第二列包含file2唯一的行第三列包含两个文件共有的行。列之间由一个制表符分隔。
选项-1、-2和-3禁止打印相应的列(和分隔符)。参见第2章[常见选项]第2页。
与其他一些比较工具不同comm的退出状态不依赖于比较的结果。正常完成后comm产生一个0的退出代码。如果有错误则以非零状态退出。
如果指定了--check-order选项未排序的输入将导致致命的错误消息。
如果指定了--nocheck-order选项未排序的输入将永远不会导致错误消息。
如果这两个选项都没有给出只有当发现输入文件包含不可配对的行时才会诊断排序错误的输入。如果输入文件被诊断为未排序comm命令将以非零状态退出(并且不应该使用输出)。
通过指定--nocheck-order强制comm处理排序错误的、包含不配对行的输入文件并不能保证产生任何特定的输出。输出可能与您希望的不一致。
‘--check-order’如果任何一个输入文件的顺序错误则失败并返回错误信息。
‘--nocheck-order’
不要检查两个输入文件是否有序。
其他选项有:
‘--output-delimiterstr’
在相邻的输出列之间打印str而不是默认的单个制表符。定界符str可以为空在这种情况下将使用ASCII NUL字符来定界输出列。
‘--total’
在最后输出摘要。与常规输出类似第1列包含file1特有的行数第2列包含file2特有的行数第3列包含两个文件共有的行数在附加的第4列中紧跟单词total。在下面的例子中comm命令省略了常规输出(-123)只打印摘要:
$ printf %s\n a b c d e file1
$ printf %s\n b c d e f g file2
$ comm --total -123 file1 file2
1 2 4 total
这个选项是一个GNU扩展。可移植脚本应该使用wc来获取总数例如对于上面的示例文件:
$ comm -23 file1 file2 | wc -l # file1中的行数
1
$ comm -13 file1 file2 | wc -l # file2中的行数
2
$ comm -12 file1 file2 | wc -l #两个文件共用的行数
4
‘-z’
‘--zero-terminated’
用0字节而不是换行符分隔项(ASCII LF)。例如将输入视为用ASCII NUL分隔的项目并以ASCII NUL终止输出项目。
此选项可以与 ‘perl -0’ 或 ‘find -print0’ 和 ‘xargs -0’ 一起使用它们的作用相同以便可靠地处理任意文件名(即使是包含空格或其他特殊字符的文件名)。
【busybox】【comm】指令介绍
NA
【linux】【comm】指令介绍
[rootlocalhost bin]# comm --help
用法comm [选项]... 文件1 文件2
逐行比较已排序的文件文件1 和文件2。When FILE1 or FILE2 (not both) is -, read standard input.如果不附带选项程序会生成三列输出。第一列包含文件1 特有的行第二列包含 文件2 特有的行而第三列包含两个文件共有的行。-1 不输出文件1 特有的行-2 不输出文件2 特有的行-3 不输出两个文件共有的行--check-order 检查输入是否被正确排序即使所有输入行均成对--nocheck-order 不检查输入是否被正确排序--output-delimiterSTR 依照STR 分列--total output a summary-z, --zero-terminated 以 NUL 字符而非换行符作为行尾分隔符--help 显示此帮助信息并退出--version 显示版本信息并退出Note, comparisons honor the rules specified by LC_COLLATE.示例comm -12 文件1 文件2 只打印在文件1 和文件2 中都有的行comm -3 文件1 文件2 打印在文件1 中有而文件2 中没有的行。反之亦然。GNU coreutils 在线帮助https://www.gnu.org/software/coreutils/
请向 http://translationproject.org/team/zh_CN.html 报告 comm 的翻译错误
完整文档请见https://www.gnu.org/software/coreutils/comm
或者在本地使用info (coreutils) comm invocation 使用示例
逐行比较两个排序后的文件 - 默认输出
第一列 file1 的唯一行
第二列 file2 的唯一行
第三列 两个文件共有的行
指令 comm test1.txt test2.txt 如果两个文件一样第一列和第二列就不会打印 逐行比较两个排序后的文件 - 如果一个文件的排序有问题那么反错默认
--check-order 选项
指令 comm test*
指令 comm test* --check-order 逐行比较两个排序后的文件 - 不检查文件是否已经排序
--nocheck-order 选项
指令 comm test* --nocheck-order 逐行比较两个排序后的文件 - 修改输出格式修改默认间隔符
--output-delimiterstr 选项
指令 comm test* --nocheck-order --output-delimiter | 逐行比较两个排序后的文件 - 统计每列的个数
--total 选项
指令 comm test* --nocheck-order --output-delimiter | --total 逐行比较两个排序后的文件 - 默认输出中可以选择不输出某一列
-1 -2 -3 选项,可以一起用
此处的 --nocheck-order 选项是因为原始文件有排序错误懒得改了应该能看明白吧
指令 comm test* -1 --nocheck-order --total
指令 comm test* -1 --nocheck-order --total
指令 comm test* -1 --nocheck-order --total
指令 comm test* -123 --nocheck-order --total 常用组合指令
NA
指令不常用/组合用法还需继续挖掘