シェルスクリプトのprintf
こんにちは、UMAです。
今回はシェルスクリプトの printf
コマンドについて
まとめておこうと思います。
printf
コマンドは echo
と同じく標準出力に文字列を
出力するものですが、フォーマットを指定することができます。
( printf
の "f" はformatの頭文字らしい)
フォーマットの指定方法は以下の通り。
- %s ……文字列
- %d ……整数
- %f ……実数(浮動小数点数)
%
と文字の間に数字を入れると、その数字分の文字幅で
出力してくれる。
$ printf "%5d" 5 ␣␣␣␣5
整数の場合、数字の前に 0
を付けると空白を0で埋めてくれる。
$ printf "%05d" 5 00005
さらに、数字の前に -
(マイナス)を付けると左揃えにしてくれる。
$ printf "%-5d" 5 5␣␣␣␣
なお、 echo
と違って自動的に改行してくれないので、改行したい場合は
改行コードもフォーマット文に入れる。
$ printf "%5d\n" 5 (Linuxの場合)
これを利用すると、ファイル名を連番にする時に役立つ。
for n in `seq 1 10` do num=`printf "%03d" ${n}` file_name=test_${num}.txt done #「test_001.txt」~「test_010.txt」ができる
たまに使うんだけど、けっこう便利。