
たとえば、N
のコピーを作成し、 、、などa.txt
の番号を付けたいとします。a1.txt
a2.txt
a3.txt
どうすれば簡潔にそのようなことを行えるでしょうか?
答え1
cp
それ自体は一度に 1 つのコピー (1 つのファイル) しか作成できませんが、簡単なループを使用すればそれほど難しくはありません。
for i in {1..10}; do cp a.txt a$i.txt; done
答え2
bash 変数に N 値があると仮定します。
for i in `seq 1 $N`; do cp a.txt a$i.txt; done
または
for ((i=1;i<=$N;i++)); do cp a.txt a$i.txt; done
または、Kevin の回答に示されているループを使用します。
答え3
を使用するソリューションは、コピーを作成するためにcp
同じファイルを何度も読み取る必要がないため、やや非効率的です。代わりに以下を使用できます。N
N
tee
cat a.txt | ( for i in `seq 1 $N`; do echo a"$i".txt; done | xargs tee )
答え4
もっとファンキーなものが欲しければ、例えば次のようにします
for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done
。