シェルスクリプトを書いていると、数値をゼロパディングする必要に迫られることがある。
たとえば、ファイル名や日付を処理するときに多い。
結論から先に述べると、数値のゼロパディングは printf(1)
を使うことで実現できる。
使った環境は次のとおり。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H15
数値をゼロパディングする
たとえば、以下のようにシェル変数を用意する。
$ N=5
このままでは、当然のことながらパディングされていない。
$ echo $N 5
printf(1)
を使って二桁にゼロパディングするには、次のようにする。
なお、使えるフォーマットは man 1 printf
を参照のこと。
$ printf "%02d\n" $N 05
シェルスクリプトの中で使う場合には、インラインで実行してやれば良いかな。
$ PADDING_N=$(printf "%02d" $N) $ echo $PADDING_N 05
いじょう。
- 作者:もみじあめ
- 発売日: 2020/02/29
- メディア: Kindle版