シェルのコマンドで「ある数字を0埋め」、さらに「連番」で出力する方法

シェルのコマンド1行で「ある数字を0埋め」、さらに「連番」で出力する方法

コマンドライン上やシェルスクリプト上で
「数字を0埋めしたい」
「0埋めされた数字の連番を発行したい」
場合は結構あると思います。

しかし、ネット上ではforループさせるプログラムが多いようですが、スクリプトのループ分なんて書く必要ありません!

コマンド1行で済む方法を紹介したいと思います。

ある数字を0埋めする

printfコマンドを使います。

$ printf "%06d\n" 123

%に続く0は埋める文字、6は6桁、dは数字がはいりますよ。の意味です。

出力
000123

0埋めされた連番を発行する

printfを拡張します

seqコマンドが連番を発行してくれるのを利用し、printfと組み合わせます。

まず、普通にseqを実行

$ seq 10
1
2
3
4
5
6
7
8
9
10

今度は0埋め

$ seq 10 | xargs printf "%04d\n" 
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010

xargsはコマンドに複数引数をパイプで渡すときに最適化処理してくれる便利コマンドです。

かんたんですね!

ありがとうございました。

コメント

タイトルとURLをコピーしました