tl;dr
即興で 1 から 100 までの数字を用意する必要になった. しかも, すべての数字を 0 パディングしたい.
今までの俺
ググったりして seq
コマンドが良さそうなことはわかっていたけど, 以下のように書いて満足していた.
for id in `seq 1 100` do num=`printf %03d $id` echo $num done
明日からの俺
上記の記事のコメント欄を見て目が醒めた.
for num in `seq -w 1 100` do echo $num done
seq --help
すると, ちゃんと書かれている.
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS" $ seq --help (略) Mandatory arguments to long options are mandatory for short options too. -f, --format=FORMAT use printf style floating-point FORMAT -s, --separator=STRING use STRING to separate numbers (default: \n) -w, --equal-width equalize width by padding with leading zeroes --help この使い方を表示して終了する --version バージョン情報を表示して終了する (略)
これで OK. むしろ, for
しなくても seq
コマンドのオプションでかたがつく.
$ seq -w 1 100 001 002 003 ... 098 099 100
最後に
man やヘルプを読みましょう.