在特定列上四舍五入到 2 个小数点

lre*_*234 1 awk decimal-point rounding

我有一个这样的清单:

Cond1 4 0.2343
Cond2 10 1.765
Cond3 8 1.9234
Run Code Online (Sandbox Code Playgroud)

我试图将第 3 列中的值四舍五入到 2 个小数点,使其看起来像这样:

Cond1 4 0.24
Cond2 10 1.77
Cond3 8 1.92
Run Code Online (Sandbox Code Playgroud)

我知道在 awk 中有一种方法可以做到这一点,但我似乎无法弄清楚。

Jam*_*own 5

使用%.2f修饰符printfor sprintf():

$ awk '{printf "%s %s %.2f\n",$1,$2,$3}' file
Run Code Online (Sandbox Code Playgroud)

或者

$ awk '{$3=sprintf("%.2f",$3)}1' file
Run Code Online (Sandbox Code Playgroud)

输出:

Cond1 4 0.23
Cond2 10 1.76
Cond3 8 1.92
Run Code Online (Sandbox Code Playgroud)

更多,例如,这里:

https://www.gnu.org/software/gawk/manual/html_node/Format-Modifiers.html