一括で指定ファイルタイプをgrepして結果を移動する方法
次のようなコマンドで、指定した文字列を含むファイルを検索、その結果のファイル内を指定文字列で検索、更にその結果を指定ディレクトリに移動する。
というようなことが一括で行えます。
find [検索対象ディレクトリ] -name [ファイル名検索文字列] | xargs grep -lir [ファイル内検索文字列] | xargs -I '{}' mv {} [移動先ディレクトリ]
実際に値をセットすると次のようになります。
find /path/to/dist -name '*.md' | xargs grep -lir 'draft = true' | xargs -I '{}' mv {} /path/to/target
このコマンドは、/path/to/dist
ディレクトリ内にある、マークダウンファイルを'*.md'
で検索した結果のファイルから、'draft = true'
を含むファイルを取得して、/path/to/target
に移動しています。