作曲・指導・C言語・Linux

金沢音楽制作

金沢音楽制作では、楽曲・楽譜の制作と、作曲や写譜などレッスンを行っています。

ファイルに連番をつけてコピーする

for文でブレース展開({})を使って、コピーするファイルに連番をつけます。つぎの例では、hoge.txtをコピーしながら1から10までの数字を付けています。

$ for i in {1..10}; do cp hoge.txt hoge_${i}.txt; done
$ ls
hoge_10.txt hoge_2.txt hoge_4.txt hoge_6.txt hoge_8.txt
hoge_1.txt  hoge_3.txt hoge_5.txt hoge_7.txt hoge_9.txt

環境:Linux Mint19、bash 4.4.20

ブレース展開の使い方

ブレース展開は、{0..100..5}と、開始値と終了値、そして増分を..で区切って指定します。増分を省略した場合は1ずつ増えます。また、数字だけでなく、文字も指定できます。{0..9}の形で使うことが多いと思います。

$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
$ echo {A..J}
A B C D E F G H I J

ゼロパディング(0埋め)をする場合は、開始値の先頭に任意の数の0を付け足します。この機能はbash 4.0から追加されました。

$ echo {01..10}
01 02 03 04 05 06 07 08 09 10

コピーではなく、空の連番のファイルが欲しい場合は、touchコマンドでブレース展開を使います。

$ touch hoge_{01..10..2}.txt
$ ls
hoge_01.txt hoge_03.txt hoge_05.txt hoge_07.txt hoge_09.txt

更新情報