ソースツリーがあり、特定の単語を含み、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