【busybox记录】【shell指令】comm

目录

内容来源:

【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-delimiter=str’
在相邻的输出列之间打印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】指令介绍

[root@localhost 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-delimiter=STR	依照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-delimiter=str 选项

指令: 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

指令不常用/组合用法还需继续挖掘:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/675248.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[HUBUCTF 2022 新生赛]checkin

数组反序列化弱比较 <?php $info array(username>true,password>true); echo serialize($info); ?> //?infoa:2:{s:8:"username";b:1;s:8:"password";b:1;}1.构造不能用类&#xff0c;因为$data_unserialize只是一个变量&#xff0c;不能…

nginx模型设计和进程讲解

一. Nginx进程模型解析 1. master主进程 和 worker工作进程 [rootlocalhost sbin]# ps -ef|grep nginx root 15411 1 0 21:08 ? 00:00:00 nginx: master process ./nginx nobody 15412 15411 0 21:08 ? 00:00:00 nginx: worker process root…

VALSE 2024 Tutorial内容总结--开放词汇视觉感知

视觉与学习青年学者研讨会&#xff08;VALSE&#xff09;旨在为从事计算机视觉、图像处理、模式识别与机器学习研究的中国青年学者提供一个广泛而深入的学术交流平台。该平台旨在促进国内青年学者的思想交流和学术合作&#xff0c;以期在相关领域做出显著的学术贡献&#xff0c…

[正则表达式]正则表达式语法与运用(Regular Expression, Regex)

0. 在线工具 RegExr: Learn, Build, & Test RegEx 1. 场景列举 vim Linux命令行 sublime 编辑器 java、python等语言中 ... ... 不同场景、不同版本语法可能不一样 2. 以下示例数据与基本语法 &2024 &As20242024# 2024sA#abdcefgha_bdcefghABASDSADAASDASD…

展开说说:Android线程池解析

何谓线程池&#xff1f;本人理解是存放和管理线程的一个容器。 线程池存在的意义是什么&#xff1f; 第一&#xff1a;前面博客提到过创建和销毁线程的操作本身是有性能开销的&#xff0c;如果把使用的线程对象存起来下次用的时候直接取出来用就省去了一次创建和销毁的成本&a…

有哪些方式可以有效地评估精益生产咨询公司的能力?

在寻求精益生产咨询服务的过程中&#xff0c;评估咨询公司的能力至关重要。这不仅关乎企业精益生产转型的成功与否&#xff0c;更直接影响到企业未来的竞争力和发展。那么&#xff0c;有哪些方式可以有效地评估精益生产咨询公司的能力呢&#xff1f; 首先&#xff0c;了解咨询公…

绘唐ai工具怎么获取

这款产品的最大亮点在于其高度精准的语音克隆能力&#xff0c;利用先进的模型&#xff0c;能够捕捉到用户独特的音调、音高和调制方式&#xff0c;使用户能够以前所未有的方式复制和利用自己的声音。仅需10秒钟的录制时间&#xff0c;即可实现声音的克隆&#xff0c;相当便捷。…

5月7号(信息差)

&#x1f30d;首次&#xff0c;西湖大学用蛋白质语言模型定向改造碱基编辑器&#xff0c;登Cell子刊 https://www.jiqizhixin.com/articles/2024-05-07-10 &#x1f384; 哈马斯宣布同意停火提议 https://finance.eastmoney.com/a/202405073067687785.html ✨ 中国将对…

【Linux】基础命令

常用命令及参数&#xff1a;dir表示文件夹&#xff0c;file表示文件&#xff08;file可表示其他目录下的文件&#xff09; pwd命令&#xff1b;查看当前所属文件夹&#xff08;print working directory&#xff09; ls [选项] dir&#xff1b;查看当前、指定文件夹目录内容&am…

【Linux IO基础】缓冲区

概念 缓冲区的主要作用是提高效率 --- 提高使用者的效率&#xff0c;因为有缓冲区的存在&#xff0c;我们可以积累一部分再统一发送&#xff0c;提高发送的效率。 刷新方式 缓冲区因为能够暂存数据&#xff0c;必定要有一定的刷新方式&#xff1a; 一般策略&#xff1a; 无…

【C 数据结构-动态内存管理】3. 伙伴系统管理动态内存

文章目录 【 1. 伙伴系统的结构设计 】【 2. 分配算法 】【 3. 回收算法 】 伙伴系统 本身是一种动态管理内存的方法&#xff0c;和边界标识法的区别是&#xff1a;使用伙伴系统管理的存储空间&#xff0c;无论是空闲块还是占用块&#xff0c;大小都是 2 的 n 次幂&#xff08;…

【承装修、试电力施工许可证申报指南】广西承装(修、试)电力设施许可证资质代办流程

【承装修、试电力施工许可证申报指南】广西承装(修、试)电力设施许可证资质代办流程 广西承装(修、试)电力设施许可证资质代办流程 在广西地区&#xff0c;承装、修、试电力设施许可证的资质代办流程相对复杂&#xff0c;但遵循一定的步骤和规定&#xff0c;可以确保流程的顺利…