しなければならない印刷機能数字ですが、幅と丸めが指定されています(awkを使用してください!)
%10s
私はこれを持っていて何とか接続する必要があります%d
が、私がやっていることすべてのために、最終的にはあまりにも多くのパラメータを提供します(より多くの列があるため)。
答え1
次のことを試すことができます。
$ awk 'BEGIN{printf "%3.0f\n", 3.6}'
4
書式設定オプションは2つの部分で構成されています。
3
:出力が3文字で埋められていることを示します。.0f
:出力に精度がなく、丸めを意味することを示します。
でman awk
詳細を見ることができます。
width The field should be padded to this width. The field is normally padded
with spaces. If the 0 flag has been used, it is padded with zeroes.
.prec A number that specifies the precision to use when printing. For the %e,
%E, %f and %F, formats, this specifies the number of digits you want
printed to the right of the decimal point. For the %g, and %G formats,
it specifies the maximum number of significant digits. For the %d, %o,
%i, %u, %x, and %X formats, it specifies the minimum number of digits to
print. For %s, it specifies the maximum number of characters from the
string that should be printed.
答え2
書式指定子を使用すると、%f
(浮動小数点)数値が指定した方法で自動的に丸められます。たとえば、値を整数に丸めるには、次のようにします。
$ awk 'BEGIN { printf("%.0f\n", 1.49); }'
1
$ awk 'BEGIN { printf("%.0f\n", 1.5); }'
2
さらに末尾の数字が必要な場合は、精度を変更してください。
答え3
awkは以下のsprintfを使用して偏見のない丸めを実行するため、プラットフォームに応じて常に丸めたい場合は、次のようなものを使用できます。
awk "BEGIN { x+=(5/2); printf('%.0f', (x == int(x)) ? x : int(x)+1) }"
これに気づかないと、微妙ですが面倒なエラーが発生する可能性があります。