find
を使用して複数のファイル形式を検索するコマンドがありますgrep
。たとえば、ディレクトリを除いてファイルから.js
文字列を検索するには、次のように入力します。.jsx
foo
dist
find . -path "./dist" -prune -or -iname "*.js" -exec grep "foo" {} + -or -iname "*.jsx" -exec grep "foo" {} +
-exec
各ファイルタイプに対して繰り返さないようにこのコマンドを再構築する方法はありますか?頑張った
find . -path "./dist" -prune -or -iname "*.js" -or -iname "*.jsx" -exec grep "foo" {} +
ただし、これらすべては.jsx
ファイルのみを.js
検索します.jsx
。
答え1
-or
優先順位は(デフォルトコネクタ)より低い-and
ため、分離の「優先順位」を明示的に上げる必要があります。
find . -path "./dist" -prune -or \( -iname "*.js" -or -iname "*.jsx" \) -exec grep "foo" {} +