中かっこ拡張を使用して前にゼロのシーケンスを作成する方法

中かっこ拡張を使用して前にゼロのシーケンスを作成する方法

以下を使用すると、予想される結果が得られます。

$ echo {8..10}
8 9 10

この中括弧拡張を簡単な方法で使用して次の出力を取得するにはどうすればよいですか?

$ echo {8..10}
08 09 10

私はこれがseq(試行せずに)を使用して取得できると思いますが、それは私が望むものではありません。

有用な情報は、私がこのバージョンのbashに制限されていることです。 (解決策はありますが解決策がzshない場合はbash共有してください)

$ bash -version
GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)

ベストアンサー1

0各項目の幅を同じにするには、最初の数字の前にを付けます。

$ echo {08..10}
08 09 10

中かっこ拡張の bash のマニュアルページから:

指定された整数の前にゼロを付けて、各項目の幅を同じにすることができます。 xまたはyが0で始まる場合、シェルは生成されたすべての用語が同じ桁数を含むように強制し、必要に応じて0を埋めます。

また、オプションを使用して前にゼロを埋めることで幅を均等化することもできますseq-w

$ seq -w 8 10
08
09
10

$ seq -s " " -w 8 10
08 09 10

さらに制御したい場合は、printfスタイルの書式を指定することもできます。

$ seq -s " " -f %02g 8 10
08 09 10

おすすめ記事