ファイルがあります(ファイルと呼びましょう)ファイル1.xyz)処理するテンプレートとして使用したいです。コンテンツをコピーする必要があります。ファイル1.xyz他のファイルの内容を置き換えるために -ファイル2.xyz、ファイル3.xyz、ファイル4.xyz、ファイル5.xyz…ファイル70.xyzまた、元のファイル名を保持してください。
私は以下を試してみました。
cp file1.xyz *.xyz
ファイルはすべて同じディレクトリにあるため、互いに追加したくありません。
動作しません。どうすれば解決できますか?
答え1
そしてzsh
:
f=(file*.xyz)
cat $f[1] > $f[2,-1]
ただし、これはすべての出力ファイルを並列に作成するため(使用するなどtee
)、これは大量のファイルに合わせて拡張されないことを意味します。
Bourneに似たシェル(zsh
および含むbash
)の場合は、いつでも次のことができます。
set file*.xzy
source=$1; shift
for dest do cp "$source" "$dest"; done
答え2
以下は、例でファイルを生成する行です。
for i in {2..70}; do cp file1.xyz file$i.xyz; done
答え3
最も簡単な方法は、teeコマンドを使用することです。
cat file1.xyz | tee *.xyz >/dev/null
答え4
echo file{2..70}.xyz | xargs -n 1 -t cp file1.xyz