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!!!
リナックスコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
リンク
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法