awkで先行ゼロ(パディング)を印刷するには?

awkで先行ゼロ(パディング)を印刷するには?

99.11111099.11のように印刷しようとしていますAWK

私は成功せず、次のバリエーションを試しました。

$ awk '{printf ("%000.2f\n", $1);}' <<< 99.111111
99.11
$ awk '{printf ("%3.2f\n", $1);}' <<< 99.111111
99.11
$ awk '{printf ("%03.2f\n", $1);}' <<< 99.111111
99.11

答え1

awkを使用してください。

$ awk '{printf("%06.2f\n", $1)}' <<< 99.111111
099.11

パディングの長さはフォーマットされた完全な数字を考慮しているため、小数部は3文字(精度の数値.も含む2)を使用するため、整数部分を長さ3にパディングするにはパディング長を6に設定する必要があります。 。パディングはシンボル(存在する場合)も考慮します。たとえば、¹-1形式で指定されます。-01.00


¹ または可能-01,00-01٫00、ユーザーのロケールとawk実装によって異なります²。 GNUの場合、環境に変数があるかどうかawkによって異なります。POSIXLY_CORRECT

関連情報