読者です 読者をやめる 読者になる 読者になる

ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

1つのファイルをテンプレートとして連番のファイルを作る

1つのファイルをテンプレートとして連番のファイルを作るなんてことをよくやるんですが、 少なければ手動でコピーしてファイルをリネームで対応してしまうものの、ファイル数が10を超えるとさすがにしんどいですよね。

でも、なんとかfor文とdo文を使うだけのシェルスクリプトを書くことで対応できました。

このスクリプトではchapter1.mdをテンプレートとして、2以降連番でファイルを作るものです。展開するファイルの数はfor〜inの後、格好が悪いですが数字を並べていく方法とseqを使って表記する方法があります(chapterは変数)。

for chapter in 2 3 4 5 6 7 8 9 10 11 12
(数字を並べる方法)
for chapter in `seq 2 12`
(seqを使う方法)

最終的に次のようなスクリプトができました。

#!/bin/bash

for chapter in `seq 2 12`
do
    cp chapter1.md  chapter$chapter.md
done

これを実行することで、chapter1.mdからchapter12.mdのファイルが作れました。

めでたしめでたし。