在bash中比较两个文件的头

在bash中比较两个文件的头

我可以diff filea fileb看到文件之间的差异。我还可以head -1 filea查看 filea 或 fileb 的第一行。如何组合这些命令来显示 filea 的第一行和 fileb 的第一行之间的差异?

答案1

如果你的 shell 支持流程替代, 尝试:

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

答案2

如果您仅比较每个文件的第一行,也许您关心该行内的字级更改,使用dwdiff

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

dwdiff有一些不错的选项,比如-c为更改后的单词着色。

或者,使用sed代替 head:

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

其中头部使用手册suggest 比 head 更可移植,因为 head 的语法随着时间的推移而head -1变化head -n 1

另外,您只需少量输入即可查看更改:

head -n1 -q filea fileb

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

答案3

您可以使用:

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

相关内容