diffコマンドで一致した行のみ、片方のみを表示する方法

目次

スポンサードリンク

Linuxのdiffコマンドは2つのファイルを比較し、異なる行を表示します。一般的に、diff file1 file2という形式で使用され、変更された行や削除された行を表示することができます。 この記事では2つのファイルのうち、一致した行のみを表示する方法、片方のみ表示する方法を解説します。

一致した行(変更がなかった行)のみを表示する方法

以下のような2つのファイルを用意します。bbb.txtのほうは2行目と4行目がaaa.txtとは異なります。

[root@hostname tmp]# cat aaa.txt
1
2
3
4
5
[root@hostname tmp]# cat bbb.txt
1
A!!!
3
B!!!
5

一致した行(変更がなかった行)のみを表示する際は、–unchanged-line-formatオプションを使用します。–unchanged-line-formatオプションに ‘%L’ を指定します。一致しなかった行を表す –old-line-format、–new-line-formatオプション には 空文字列を指定することで一致した行のみを表示することができます。

[root@hostname tmp]# diff --old-line-format='' --unchanged-line-format='%L' --new-line-format='' aaa.txt bbb.txt
1
3
5

片方のみ表示する方法

片方のみ表示する際は、–old-line-format、–new-line-formatオプションを使用します。

[root@hostname tmp]# diff --old-line-format='%L' --unchanged-line-format='' --new-line-format='' aaa.txt bbb.txt
2
4

[root@hostname tmp]# diff --old-line-format='' --unchanged-line-format='' --new-line-format='%L' aaa.txt bbb.txt
A!!!
B!!!

リナックスコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。