[unixコマンド] seqコマンドで0埋めした数字を出力する方法

shell script

シェルスクリプトを使っている皆さん。0埋めという言葉をご存知でしょうか。

0埋めとは、例えば01、02、03、のように数字の前に0をつけることを言います。たくさんのファイルを整理するときなどにとても役に立ちます。

そこで今回は、seqコマンドを用いて、0埋めをする方法をご紹介します

非常に簡単なので必要であれば是非使ってみてください。この方法を用いると、簡単に数字の前の0の個数を指定することができます。

この記事はこんな方にオススメ

・シェルスクリプトを使っている方で、0埋めをしたい方
・seqコマンドで簡単に0埋めした数字を出力したい方

それでは紹介していきます。ぜひ最後までご覧下さい。

seqコマンドで0埋めするやり方

seqコマンドで0埋めするには2つの方法があります。

seq “%0(数字)g”を用いて0埋めする方法(オススメ)

例えば、01、02、03・・・09と出力させたいとします。そういう時は、ターミナルで

seq -f "%02g" 9

と入力してください。すると、01、02、03・・・09と出力されるはずです。細かく説明していきます。

-fは数字のフォーマット(formatのf)を決定するためのオプションです。

“%0(数字)”の数字の部分は0を含めた桁数を表します。例えば、上の例で2のところを3に変えると、出力される結果は、001、002、・・・009となります。これで簡単に桁数を調整できます。

gは整数で出力する際に用いるコマンドです

他にもfを用いることで、小数点以下の数字の個数を指定することができます。例えば、seq “%0.2f” 9とすると、出力結果は、1.00、2.00・・・9.00となります。この場合は、0.(数字)の部分で小数点以下の桁数を指定しています。

最後の9は、9までを出力させることを指定しています。この数字は、%0(数字)の数字に関係なく指定することができます。例えば、%02gの時に12と指定すると、01、02、・・・09、10、11、12と出力され、エラーなどは特に出ません。

-wを用いて0埋めする方法

seq -w 10

とターミナルに打ち込んでみてください。そうすると、01、02、・・・09、10と出力されるはずです。-wでは、入力された数字の桁数に合わせて0埋めを行います。

-wの困ったところは、01、02、・・・09のみを出力させることができないことです。seq -w 9と入力すると、単に1から9の数字が出力されるだけになります。なので、キリの良い数字を使うときにしか便利ではありません。

その他の0埋めのやり方

その他にもprintfコマンドを用いて0埋めを行うこともできます。気になる方は下の記事の内容も参考にしてください。

分かりにくい、質問等ございましたら、お問合せください。

コメント

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