【一天一个shell命令】文本操作系列-comm
题外话:说到比较文件,过来人都用过Beyond Compare,老版本时候,我们只能右键选中用于比较的文件,再选中被比较文件,对比。 如今他有了丰富的界面,支持linux上比较文件。 干什么用的?svn管理不善的时候,版本控制做的不好的时候,你就会期望他了。这都是经验- -!
回到正题:在shell中,也有个这么个命令---comm。 comm可用于两个文件之间的比较。可以用于文件的比较,交集,求差以及差集操作。
这个定义其实不够详细,应该是 comm逐行比较已排序的文件1和文件2.
全称:
(惭愧)没有找到合适的全称。 com 很明显是compare开头,m为mode。望高手指正。
查看—help
用法:comm [选项]... 文件1 文件2
逐行比较已排序的文件文件1 和文件2。
如果不附带选项,程序会生成三列输出。第一列包含文件1 特有的行,第二列包含 文件2 特有的行,而第三列包含两个文件共有的行。
-1 不输出文件1 特有的行
-2 不输出文件2 特有的行
-3 不输出两个文件共有的行
--check-order 检查输入是否被正确排序,即使所有输入行均成对
--nocheck-order 不检查输入是否被正确排序
--output-delimiter=STR 依照STR 分列
解读:
1. --check-order
该命令默认情况下 如果希望不检验排序,可以--nocheck-order。
2. --output-delimiter=STR
STR 就是个表达式。 可以是任何非特殊字符
3. -1,-2
可以写成 -12 与普通命令用起来一样
实例:
1.建立A.txt
加入元素
apple
orange
gold
silver
steel
iron
2. 建立B.txt
加入元素
orange
gold
cookies
carrot
可以尝试直接比较: comm A.txt B.txt
你会发现提示一个错误,没有排序。
3. 排序
- sort A.txt -o A.txt; sort B.txt -o B.txt
4. 比较
- $comm A.txt B.txt
- apple
- carrot
- cookies
- gold
- iron
- orange
- silver
- steel
结果实际为3列 其中第一列是文件1特有 -1表示删除第一列
第二列是文件2特有的 -2代表删除第二列
第三列代表共同有的 -3代表删除共有的列
4.1 打印交集:
$comm –12 A.txt B.txt
4.2 打印两个文件中不同的行
$comm –3 A.txt B.txt
补充个小修改,两列不好看,用sed删除行首的\t
$comm –3 A.txt B.txt | sed 's/^\t//'
实战:
comm在实战中,只会在一些非常特殊的场景中用到。 比较简单,就不举例了。(笔者遇到的场景中,仍然坚持有更好的方案时候,不用这个命令,呵呵)。
本文出自 “书生” 博客,请务必保留此出处http://yjplxq.blog.51cto.com/4081353/948349
【一天一个shell命令】文本操作系列-comm相关推荐
- linux操作命令comm,一天一个shell命令 文本操作系列-comm命令用法
comm命令比较两个已排序文件每行数据的差异,并将其结果显示出来,如果没有指定任何参数,comm命令读取这两个文件,然后生成三列输出:1>仅在file1中出现的行2>仅在file2中出现的 ...
- Shell命令行操作
1.1 shell提示符 [me@linuxbox ~]$ 如果最后一个字符是"#",表示当前终端会话有超级用户权限.使用root用户登录或者使用能提供超级用户权限的终端能获得该权 ...
- JAVA好管家,一天一个shell命令 linux好管家-进程-ps命令详解
小知识(以ps为例): 查看命令路径 which ps 命令帮助 ps --help 命令完全手册: man ps 说明 ps全称是:Process Status (进程状态),他就是提供进程信息的 ...
- Shell命令-网络操作之基础之scp、wget
文件及内容处理 - scp.wget 1. scp:用于不同主机之间复制文件 scp命令的功能说明 scp 命令用于 Linux 之间复制文件和目录.scp 是 secure copy 的缩写, sc ...
- linux写文本命令,一天一个shell命令 linux文本操作系列-chmod命令用法
先来熟悉下权限,以上一个例子comm下的文档为例 $ls -l -rw-rw-r-- 1 yjplxq yjplxq 36 7月 30 22:40 A.txt -rw-rw-r-- 1 yjpl ...
- 【一天一个shell命令】文本操作系列-touch
之前我们学过dd创建测试文件,如果不需要考虑文件大小,创建一个空白文件的话,不妨试试 touch: 将每个文件的访问时间和修改时间改为当前时间. 不存在的文件将会被创建为空文件,除非使用-c 或-h ...
- linux touch 源码,一天一个shell命令 linux文本操作系列-touch命令用法
之前我们学过dd创建测试文件,如果不需要考虑文件大小,创建一个空白文件的话,不妨试试 touch: 将每个文件的访问时间和修改时间改为当前时间. 不存在的文件将会被创建为空文件,除非使用-c 或-h ...
- linux中touch命令如何使用,一天一个shell命令 linux文本操作系列-touch命令用法
之前我们学过dd创建测试文件,如果不需要考虑文件大小,创建一个空白文件的话,不妨试试 touch: 将每个文件的访问时间和修改时间改为当前时间. 不存在的文件将会被创建为空文件,除非使用-c 或-h ...
- native react 更新机制_深度使用react-native的热更新能力,必须知道的一个shell命令...
开篇之前,先讲一个自己开发中的一个小插曲: 今天周日,iOS版 App 周一提交,周三审核通过上架,很给力.不过,中午11:30的时候,运营就反应某个页面有一个很明显的问题,页面没法拉到底部,部分信息 ...
- 【一天一个shell命令】【cut】
1. 命令简介 cut根据指定的定界符,切分文件,并将选中的列输出到标准输出. 2. 用法 cut [选项]... [文件]... 打印输入行的选中的parts 到标准输出 3. 选项 4. 示例 以 ...
最新文章
- 任正非:5G独立组网全世界只有华为一家做好了 我们在等待高通进步
- ERP内部顾问与外部顾问的区别
- 使用UISearchDisplayController
- linux mount文件夹
- jQuery-DOM
- PCF上的Spring Cloud合同和Spring Cloud Services
- 简单类及成员实例【C#】
- 【OpenCV 例程200篇】25. 图像的平移
- 非结构化WEB数据库与图书馆多媒体信息资源的组织利用
- 吴恩达深度学习 —— 4.1 深层神经网络
- 程序设计与算法----分治之归并排序
- 大数据之-Hadoop3.x_MapReduce_区内排序案例---大数据之hadoop3.x工作笔记0117
- python程序设计采用格式框架结构_Python笔记:基于Django框架的项目架构程序设计...
- 读取浏览器cookies的python脚本
- 字节学妹的数据分析笔记,收藏
- ios系统gps测试软件,GPS工具箱
- lumion无法隐藏活动层_lumion是什么软件?想快速掌握 Lumion?快来拿走这份正确的入门教程!...
- 成果丰硕!SWORD 斯沃德惊艳亮相“第18届深圳名品家博会”
- PhotoShop中让索引图片解锁使用
- iOS 关于音乐锁屏控制音乐(锁屏信息设置)
热门文章
- python远程调用摄像头_教你如何利用python调用摄像头
- 多个excel表格数据汇总如何完成
- V2X车联网-学习整理笔记
- 再转个有意思的东西...装B指南...(2008-05-07 12:26)
- 服务器 分辨率问题 显示器不显示不出来,显示器没有最佳分辨率及分辨率调不了的解决方法...
- 微信android登录协议分析,手机微信协议分析,请教··
- 基于SimpItk的下肢全景X光图像拼接
- 苹果手机电池健康怎么看_打开手机这个功能,就能知道手机电池的健康度,安卓苹果都可以!...
- 计算机白板培训心得,电子白板学习的心得体会
- Paraphrasing effectively 有效转述你需要了解这些内容~