ファイル内の複数の文字列を見つける方法は? [コピー]

ファイル内の複数の文字列を見つける方法は? [コピー]

指定された文字列を含むファイルを見つけるには、次のコマンドを使用します。

find /var/www/http -type f | xargs grep -iR "STRING1"

しかし、「STRING1」、「STRING2」、または「STRING3」を含むファイルを見つける方法は?

このコードは機能しません:

find /var/www/http -type f | xargs grep -iR "STRING1" | xargs grep -iR "STRING2"

ベストアンサー1

POSIXlyではgrepwith-Eオプションを使用してください。

find /var/www/http -type f -exec grep -iE 'STRING1|STRING2' /dev/null {} +

または-e:

find /var/www/http -type f -exec grep -i -e 'STRING' -e 'STRING2' /dev/null {} +

少なくともGNUシステム、OSX、およびFreeBSDでは、いくつかの実装を介して以下をエスケープできます|

find /var/www/http -type f -exec grep -i 'STRING1\|STRING2' /dev/null {} +

おすすめ記事