2014-12-01 58 views
9

我可以使用diff命令查看两个文件是否有k行不同?diff命令获取不同行数

我不想要上下文差异,只是两个文件之间的行数不同。最好如果结果只是一个整数。

thx!

+1

可能重复[?如何算在Linux上两个文件之间的差异(http://stackoverflow.com/questions/1566461/how-to-count-differences-between -two-files-on-linux) – 2014-12-01 20:45:42

回答

14

是的,你可以,而且在真正的Linux时尚中,你可以使用许多管道连接的命令来执行任务。

首先您需要使用diff命令来获取文件中的差异。

diff file1 file2 

这会给你一个变化列表的输出。在那些你感兴趣的是一个“>”符号为前缀的线

您使用的grep工具这些,过滤掉尽可能终于如下

diff file1 file2 | grep "^>" 

一旦你的变化列表中感兴趣的是,您只需在行模式下使用命令wc来计算更改次数。

diff file1 file2 | grep "^>" | wc -l 

并且您有一个完美的Linux理念哲学例子。

+0

这不会得到file1中的行,但不是file2,例如,如果file1是“hello”,file2是空白文件,则diff将只是“ 2015-11-16 21:57:17

+0

@AndrewNguyen在这里它与如何定义线的差异有关。 – 2015-11-17 13:06:13

+0

这根本不起作用。 #thelinuxphilosophy – djechlin 2016-05-01 18:05:32

0

差异可以做所有的第一部分工作,但没有计算;厕所没有休息:

diff -y --suppress-common-lines file1 file2 | grep wc -l