UMAの備忘録

Linuxやら大気科学やらについてゆるりと。

シェルスクリプトのprintf

こんにちは、UMAです。

今回はシェルスクリプトprintf コマンドについて
まとめておこうと思います。


printf コマンドは echo と同じく標準出力に文字列を
出力するものですが、フォーマットを指定することができます。

printf の "f" はformatの頭文字らしい)


フォーマットの指定方法は以下の通り。

% と文字の間に数字を入れると、その数字分の文字幅で
出力してくれる。

$ 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」ができる

たまに使うんだけど、けっこう便利。