[小技巧] 使用 diff 命令来比较标准输出
来源:互联网 发布:如何手机秒杀淘宝商品 编辑:程序博客网 时间:2024/05/18 01:54
本文翻译至:https://crashingdaily.wordpress.com/2008/03/06/diff-two-stdout-streams/
diff工具用于报告两个文件之间的差异,如果你需要找到一个或两个标准输出之间的差异,那么临时的命名管道是一个方便的手段。
下面是用bash shell来说明该技巧的一个简单的例子,你有两个文件,A和B:
$ cat A
Tara
Dawn
Anya
Willow
$ cat B
WILLOW
ANYA
DAWN
HARMONY
TARA
我们的任务是发现两个列表之间的差异,而无需创建新文件或编辑现有文件。为此,您可以通过sort和tr来规范字母的大小写,然后使用diff来实时检查标准输出。
$ diff -B <(sort A | tr [:lower:] [:upper:]) <(sort B | tr [:lower:] [:upper:])
2a3
> HARMONY
<(...) 语法创建一个临时命名管道,这使得sort | tr 命令的标准输出像一个文件一样显示和动作,并允许diff对预期的输入类型进行操作。
为了好玩,你可以看到在进程中创建的临时文件:
dir <(sort A | tr [:lower:] [:upper:])
lr-x------ 1 crash daily 64 Mar 5 23:17 /dev/fd/63 -> pipe:[21483501]
这种技巧不限于diff。它也支持大多数以文件作为输入的命令。
有趣的是(令人沮丧的),在我的Mac OS X上的BASH shell它无法动作,有人知道为什么吗?更新:的确有人知道。Unixjunkie里有回答。下列的处理在OS X可以产生预期的输出,但试了用diff却不产生输出。
cat <(sort A | tr [:lower:] [:upper:]) <(sort B | tr [:lower:] [:upper:])
ANYA
DAWN
TARA
WILLOW
ANYA
DAWN
HARMONY
TARA
WILLOW
- [小技巧] 使用 diff 命令来比较标准输出
- Python之封装diff命令的项目比较命令(格式化diff输出结果)
- linux 标准输出、标准错误输出、以及shell小技巧
- linux 下使用diff命令比较两个文件夹
- diff 命令输出格式说明
- diff命令输出格式解读
- 文本比较命令comm,diff
- linux diff 比较命令二
- linux比较文件命令-diff
- 比较文本差异diff 命令
- [小技巧]mac下如何使用secureCRT来保存输出日志
- diff命令的使用
- diff命令的使用
- diff命令的使用
- 小技巧:如何在某命令的帮助输出信息里(usage)用grep查找关键字(错误输出重定向到标准输出)
- [小技巧] diff 在比较两个目录时忽略 .svn 目录
- copy命令使用小技巧
- date 命令使用小技巧
- 百度登录加密协议分析(上)
- mysql的yum安装
- [kuangbin带你飞]专题五 并查集 H POJ 1733
- elasticsearch sql的安装
- 7.3.2 Using Backups for Recovery 使用备份用于恢复
- [小技巧] 使用 diff 命令来比较标准输出
- 对象数组的排序问题,设置对象某一属性的优先级最高
- 爱奇艺笔试题之成长值计算
- IP地址,子网掩码、默认网关,DNS服务器是什么意思?
- Java 8的新特性—终极版
- hdu 2546 饭卡(0-1)
- 拦截过滤器模式和数据规则
- leetCode练习(81)
- Centos7安装redis3.0