ファイルのgrepとパターンを使用して一致しないパターンを印刷する

ファイルのgrepとパターンを使用して一致しないパターンを印刷する

パターン.txt:

"BananaOpinion"
"ExitWarning"
"SomeMessage"
"Help"
"Introduction"
"MessageToUser"

string.xml

<string name="Introduction">One day there was an apple that went to the market.</string>
<string name="BananaOpinion">Bananas are great!</string>
<string name="MessageToUser">We would like to give you apples, bananas and tomatoes.</string>

予想出力:

"ExitWarning"
"SomeMessage"
"Help" 

patterns.txt見つからない用語を印刷する方法はStrings.xml?一致/不一致を印刷できます。ワイヤーしかし、Strings.xml一致しないアイテムを印刷する方法模様?私はggrep(GNU grep)バージョン2.21を使用していますが、他のツールも使用できます。見つからない他の質問と重複している場合は申し訳ありません。

ベストアンサー1

一致する部分のみを印刷し、結果をgrep -o元のファイルのパターンとして使用できます。grep -vpatterns.txt

grep -oFf patterns.txt Strings.xml | grep -vFf - patterns.txt

joinこの特別な場合は+を使用することもできますsort

join -t\" -v1 -j2 -o 1.1 1.2 1.3 <(sort -t\" -k2 patterns.txt) <(sort -t\" -k2 strings.xml)

おすすめ記事