サムネイル画像

一括で指定ファイルタイプをgrepして結果を移動する方法

2020.11.15

次のようなコマンドで、指定した文字列を含むファイルを検索、その結果のファイル内を指定文字列で検索、更にその結果を指定ディレクトリに移動する。

というようなことが一括で行えます。

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に移動しています。

関連記事