bashで2つのファイルの先頭を比較する


11

私が行うことができますdiff filea filebファイルの違いを見るために。head -1 fileafileaまたはfilebの最初の行を表示することもできます。これらのコマンドを組み合わせて、fileaの最初の行とfilebの最初の行の違いを表示するにはどうすればよいですか?

回答:


22

シェルがプロセス置換をサポートしている場合は、以下を試してください。

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

プロセス置換コマンドはすでにどこかで見ましたが、それが何をするのかわかりませんでした。よろしくお願いします!
edi9999 2015

6

各ファイルの最初の行のみを比較している場合は、次を使用して、行内の単語レベルの変更を気にする可能性がありますdwdiff

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

dwdiff-c変更された単語に色を付けるなど、いくつかの素晴らしいオプションがあります。

または、sed頭の代わりに使用:

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

これはヘッドのためのマニュアルは頭の構文は、時間の経過とともに変化しているように、ヘッドよりも移植示唆しているhead -1head -n 1

また、少し入力を減らして、変更を目で確認することもできます。

head -n1 -q filea fileb

簡単に視覚的に比較できるように、2つの線が上下に表示されます。


0

以下を使用できます。

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

2
file1が空のファイル(または読み取り不可)で、file2の最初の行が空の場合、「同じ」と答えます。
ステファンChazelas

私はこの方法が「ばか証明」だとは言いませんでしたが、2つのファイルの最初の行をすぐに一致させたい場合は
Lambert
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.