findしてgrepしてマッチさせてからコピー、xargsを二度ほど使ってます。 2009/01/09

コマンドです。

ファイル内検索してマッチしたファイルだけを別のディレクトリ(フォルダ)に移動(コピー)したいという気持ちにときたまなります。

まず、いまいるディレクトリでファイル内検索してマッチさせます。

find .|xargs grep "マッチ!!"


つぎにこのマッチしたファイルを別のディレクトリにコピーします。
はじめxargsでどう実現するのかしらと頭を悩ませたのですが、mv,cpのコマンドには移動場所を指定するオプションがあります!!

-t, --target-directory=DIRECTORY
move all SOURCE arguments into DIRECTORY


-t, --target-directory=DIRECTORY
copy all SOURCE arguments into DIRECTORY


このオプションを使って、実現してみます。

find .|xargs grep -l "マッチ"|xargs cp -t 移動


xargsを二度使ってます。

参考
ディノオープンラボラトリ — いまさらxargsの便利さを主張してみる

: