Grepコマンドは、テキスト文字列を含むファイルを見つけて移動します。

Grepコマンドは、テキスト文字列を含むファイルを見つけて移動します。

以下を使用して、特定のテキスト文字列を含むフォルダ内のファイルを検索できます。

grep -lir 'string' ~/directory/*

上記の結果に表示されるファイルを別の場所に移動するにはどうすればよいですか?

ベストアンサー1

3番目の構文でxargs使用されます。mvmv [OPTION]... -t DIRECTORY SOURCE...

grep -lir 'string' ~/directory/* | xargs mv -t DEST

特殊文字(スペース、引用符)を含むファイルに注意してください。この場合、フィルタリングされたリストを使用するとsed(ファイル名の周りに引用符を追加するs/^/'/;s/$/'/)ことができますが、これらの引用符がファイル名に表示されないようにする必要があります。 GNUには、NULで終わるファイル名の/オプションがgrepあります。-Z--null

3番目の構文の代替案は、プレースホルダ文字列()で使用することですmvxargs-I

もう1つのオプションは、ire_and_cursesの答えで述べたように、コマンドの置き換えまたは$( )バックティック``です。

おすすめ記事