ファイルが2つあるのに比較したいですa.txt
。b.txt
a.txt
含む:
abc
jkl < jkl
mno > mno
pqr <> pqr
b.txt
含む:
abc
jkl < jkl
mno > mno
pqr <> pqrs
stu
私はこのスクリプトを使用しています:
$ diff a.txt b.txt | grep "> " | cut -c3- > c.txt
結果c.txt
:
pqr <> pqr
pqr <> pqrs
stu
なぜpqr <> pqr
結果に含まれますか?この問題をどのように解決できますか?
ベストアンサー1
@StephaneChazelasが指摘したように、正規表現を固定することを忘れた"> "
ので>
。pqr <> pqr
a.txt
しかし、フィルタに.NETで新しく追加された行または変更された行のみを表示させたいと思いますb.txt
。 GNU diffを使用している場合は、これを直接実行するためのいくつかのオプションがあります。
$ diff --old-line-format '' --unchanged-line-format '' --new-line-format '%L' a.txt b.txt
pqr <> pqrs
stu
--old-line-format ''
にないすべての行を削除し、b.txt
両方の--unchanged-line-format ''
ファイルに共通のすべての行を削除し、--new-line-format '%L'
にある新しい行または変更された行の行の内容のみを表示しますb.txt
。リードが>
抑制されました。