diffが期待どおりに機能しません。

diffが期待どおりに機能しません。

ファイルが2つあるのに比較したいですa.txtb.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 <> pqra.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。リードが>抑制されました。

おすすめ記事