コマンドラインでファイル名を連番付きにする。

特定のディレクトリにあるファイルを連番付きのファイル名に変更したい場合は"printf"コマンドを使用する。

連番のフォーマットは桁数が決まっていて、桁数に達しないときは足りない桁は0で埋める。

例) 3桁の連番

・1 → 001

・23 →023

・156 →156

のように出力したい場合は

printf "%03d" 12

とすると"012"となる。4桁にしたい場合は"%04d"とする。

 

ディレクトリ以下のjpegファイルをPAGE_001.jpgから連番付きファイル名にするには以下のようなshell scriptを実行する。

#!/bin/bash

if [ "$1" = "" ]; then
   startnum=1
else
   startnum=$1
fi

basefilename="PAGE_"

mkdir -p tmp

for f in *.jpg
do
   filenum=`printf "%03d" $startnum`
   cp "$f" tmp/${basefilename}${filenum}.jpg
   let startnum=startnum+1
done

引数に開始番号を指定する。指定しないときはPAGE_001.jpgから始まるjpgファイルがtmpディレクトリに格納される。