GNU/Linux >> Linux の 問題 >  >> Linux

grep から cp に出力をパイプする方法は?

これは、特定の日付のファイルを検索するときに機能しました:

 ls | grep '2018-08-22' | xargs -I '{}' cp '{}' ~/data/lidar/tmp-ajp2/

ファイルを grep で見つかったディレクトリにコピーするには、-printf を使用してディレクトリを出力し、-i を使用して xarg からコマンド引数を配置します (パイプの後)

find ./ -name 'filename.*' -print '%h\n' | xargs -i cp copyFile.txt {}

これにより、「filename」を含むすべてのディレクトリ (./ 内) に copyFile.txt がコピーされます


grep -l -r "TWL" --exclude=*.csv* | xargs cp -t ~/data/lidar/tmp-ajp2/

説明:

  • grep -l ファイル名のみを出力するオプション
  • ファイルリストを標準入力からコマンドライン引数に変換する xargs
  • cp -t ターゲット ディレクトリを指定するオプション (プレースホルダーの使用を避ける)

xargs が必要です プレースホルダー オプション:

grep -r "TWL" --exclude=*.csv* | xargs -I '{}' cp '{}' ~/data/lidar/tmp-ajp2/

通常 xargs を使用する場合 、出力を after に配置します プレースホルダー付きのコマンド ('{}' この場合)、挿入する場所を何度でも選択できます。


Linux
  1. 「猫」の出力で単語を強調表示する方法は??

  2. カラー出力をgrepする方法

  3. 再帰的にgrepするにはどうすればよいですか?

  1. sed のバッファリングを停止するには?

  2. curl -v の出力をパイプまたはリダイレクトするにはどうすればよいですか?

  3. ffmpeg出力から継続時間を抽出するには?

  1. /dev/urandom を Linux サウンド出力にパイプする方法は?

  2. 複数行の出力を 1 行に連結する方法は?

  3. ロングからワイドへのgrep出力