てきとーなブログ

seqコマンドでゼロサプレスなし(先頭0付け)あれこれ

Unix (Linux)

seqコマンドのゼロサプレスなし(ゼロ抑制なし=先頭に0を付ける)のやり方を度々忘れるので備忘録として書いておく。

まず普通にseq。(便宜上INCREMENT=50にしてる)

$ seq 1 50 101  
1  
51  
101  

桁合わせに0を入れたいなら単純に-wオプションでOK。

$ seq -w 1 50 101  
001  
051  
101

seqコマンドには-fというprintfと同様の書式が使えるオプションが用意されているのでこれを使う手もある。ただしオプション説明に“use printf style floating-point FORMAT”とあるのであくまでも浮動小数関連フォーマット指定になる。つまり%02gはOKだけど%02dはダメ。

ゼロサプレスなしの最低二桁。

$ seq -f %02g 1 50 101  
01  
51  
101

ゼロサプレスなしの三桁。

$ seq -f %03g 1 50 101  
001  
051  
101

ゼロサプレスなしの四桁。

$ seq -f %04g 1 50 101  
0001  
0051  
0101