🎃

同じ内容で、ファイル名が連番のファイルを作成する

1 min read

同じ内容で連番のファイルが欲しい

  • たとえば、テンプレートをもとに日付ごとのファイルを作る
  • たとえば、プログラミングコンテストで解答するために問題番号ごとのファイルを作る

コマンドラインで作る

日記を作る場面での例。

cd /path/to/diary/2021/05
seq -f '%02g.md' 1 31 | xargs -n 1 cp /path/to/template
# 01.md ~ 31.md が生成される

seq

  • パラメータをもとに連番を出力するコマンド
  • -f オプションでフォーマットを調整できる
    • %02g とすると2桁のゼロ埋めにできる

xargs

  • 入力からコマンドを組み立てて実行するコマンド
  • -n オプションで、コマンドを組む際に使う引数の上限数を指定する
    • 無指定の場合、一行が許す限りだとか、いい感じの個数が選ばれてしまう

cp

  • ファイルを複製するコマンド
  • パラメータの内、最後のパスに向かって出力する
    • xargs -n 1 となった理由

参考リンク