grepコマンドの一致式を返す方法

grepコマンドの一致式を返す方法

ファイルシステムからの検索によく使用されるコマンドをデバッグしようとしています。一致させる正規表現のリストを含む外部ファイルがあります。

はい[何百もの用語を含む実際の文書]cat terms.txt

cat\|dog\|mouse\|frog\|horse

今私の条件の1つが私に頭痛を与え、すべての行に対してtrueを返すと思う問題に直面しました。どの用語が頻繁に攻撃を受けるかを調べて、より正確に用途を変更できたらと思います。私はこのユーティリティで使用しますstrings

find /data/*/** -type f -print0 | xargs -0 strings -f -t d | grep -w "$(terms.txt)"

戻り値の形式は次のとおりです。

/data/animals/felines.txt: 6 tiger cat

terms.txtファイルの一致する式を行末に追加するのと同じものを見たいです。一種のbashスクリプトを書かなくてもこれは可能ですか?

/data/animals/felines.txt: 6 tiger cat - matched expression "cat"

ベストアンサー1

grepこのオプションは-o目的の出力を生成しませんが、問題を見つけるのに役立ちます。各行の一致部分のみを出力し、行の複数の部分が一致する場合は各部分を個別に出力します。他の行):

/data/animals/felines.txt:cat

おすすめ記事