比较bash中两个文件的头


11

我可以diff filea fileb看到文件之间的区别。我也head -1 filea可以看到filea或fileb的第一行。如何合并这些命令以显示filea第一行和fileb第一行之间的区别?

Answers:


22

如果您的外壳支持进程替换,请尝试:

diff <(head -n 1 filea) <(head -n 1 fileb)

我已经在某个地方看到了进程替换命令,但是不知道它做了什么。谢谢 !
edi9999

6

如果您仅比较每个文件的第一行,则可以使用以下命令关心该行中的单词级更改dwdiff

dwdiff <(head -n 1 filea) <(head -n 1 fileb)

dwdiff有一些不错的选择,例如-c为更改的单词上色。

或者,使用sed代替head:

dwdiff <(sed 1q filea) <(sed 1q fileb)

其中用于头手动表明比头更便携,作为头的语法已随着时间改变head -1VShead -n 1

另外,您只需键入一些内容即可查看更改:

head -n1 -q filea fileb

它显示了两条线,一条线在另一条线下方,以便于视觉比较。


0

您可以使用:

if [ "`head -1 file1`" == "`head -1 file2`" ]; then echo "the same"; fi

2
请注意,如果file1为空文件(或不可读)并且file2的第一行为空,它将回答“相同”。
斯特凡Chazelas

我并不是说这种方法是“傻瓜证明”的,但是如果您很快想匹配两个文件的第一行...
Lambert 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.