いくつかの値をループする必要があります。
for i in $(seq $first $last)
do
does something here
done
および については$first
、$last
固定長 5 にする必要があります。したがって、入力が の場合1
、 となるように先頭にゼロを追加する必要があります00001
。たとえば までループします99999
が、長さは 5 でなければなりません。
例: 00002
、、、00042
など00212
。12312
どうすればそれができるのか、何かアイデアはありますか?
ベストアンサー1
-f
ただし、特定のケースでは、リストを出力するときに数値をフォーマットするためのフラグを使用するのが最も簡単でしょうseq
。例:
for i in $(seq -f "%05g" 10 15)
do
echo $i
done
次の出力が生成されます。
00010
00011
00012
00013
00014
00015
より一般的には、bash
がprintf
組み込まれているため、次のように出力にゼロを埋め込むことができます。
$ i=99
$ printf "%05d\n" $i
00099
-v
フラグを使用して出力を別の変数に保存できます。
$ i=99
$ printf -v j "%05d" $i
$ echo $j
00099
printf
はと若干異なる形式をサポートしているため、の代わりにseq
を使用する必要があることに注意してください。%05d
%05g