シェルスクリプトを使っている皆さん。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埋めを行うこともできます。気になる方は下の記事の内容も参考にしてください。
分かりにくい、質問等ございましたら、お問合せください。
コメント