findしてgrepしてマッチさせてからコピー、xargsを二度ほど使ってます。
2009/01/09
linux
コマンド
コマンドです。
ファイル内検索してマッチしたファイルだけを別のディレクトリ(フォルダ)に移動(コピー)したいという気持ちにときたまなります。
まず、いまいるディレクトリでファイル内検索してマッチさせます。
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の便利さを主張してみる
: