ある条件は含まれ、他の条件は除外するファイルを見つける方法

ある条件は含まれ、他の条件は除外するファイルを見つける方法

ソースツリーがあり、特定の単語を含み、2番目の単語を含めてはいけないすべてのファイルを探しています。これは、新しいコードを含めるために古いファイルを更新する必要があるためです。

findを使用できることはわかっていますが、grepステートメントをリンクしようとすると、2番目のgrepステートメントが最初のgrepステートメントの結果を取得して迷子になるため、うまくいかないようです。

私は試した:

find . -type f -name "*.c" -exec grep -Hl "ABC" {} \; | grep -L "123"

これはまったく機能しません。どんな助けでも大変感謝します。

ベストアンサー1

の終了ステータスは一致が見つかったかどうかを示すため、条件付き(必要な否定または)で直接テストできる必要がgrepあります。find!-not

find . -type f -name "*.c" \( -exec grep -q "ABC" {} \; ! -exec grep -q "123" {} \; \) -print

-q最初のゲームは自動的に終了します。ファイル名を印刷するようにしてgrepおくため、これについて聞く必要はありません。find

おすすめ記事