1

情報を含む1つのファイル(masterfile.incと呼びます)と空のファイル(file1.inc-file20.incと呼びます)を含むディレクトリがあります。

masterfile.incの内容をすべての空のファイルにコピーするxargsコマンドを作成しようとしています。

これまでのところ私は

ls -ltr | awk'{print $ 9}' | grep-vマスターファイル| xargs -I {} cat masterfile.inc> {}

残念ながら、これは{}というファイルを作成し、masterfile.incをN回出力するだけです。

ここの構文に欠けているものはありますか?

前もって感謝します

4

2 に答える 2

1

このコマンドを使用して、ファイルを20回コピーできます。

$ tee <masterfile.inc >/dev/null file{1..20}.inc

注: file{1..20}.incに展開されますfile1, file2, ... , file20


分離ファイル名がランダムである場合:

$ shopt -s extglob
$ tee <masterfile.inc >/dev/null $(ls !(masterfile.inc))

注:( ファイル名にスペースを使用しないでください)を$(ls !(masterfile.inc))除いて、現在のディレクトリ内のすべてのファイルに展開されますmasterfile.inc

于 2013-03-20T02:54:17.313 に答える
0

トリックは本当に素晴らしいですが、tee他の状況に適応しやすいソリューションに興味があるかもしれません。ここでGNUParallelを使用します:

ls -ltr | awk '{print $9}' | grep -v masterfile | parallel "cat masterfile.inc > {}"

GNUParallelのインストールには文字通り10秒かかります。

wget pi.dk/3 -qO - | sh -x

詳細については、紹介動画をご覧ください:https ://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

于 2013-04-19T22:30:08.180 に答える