在 awk 中将整数转换为浮点数

Convert integers to floats in awk

cat file.txt
1
1.6
0
0.7
2
3
3.7

预期输出为:

1.0
1.6
0.0
0.7
2.0
3.0
3.7

任何 awk 或 bash 解决方案?哪里是整数,就转成浮点数。

对于awk,只需指明要用于打印结果的格式即可。使用 printf 表示您想要 1 位小数:

$ awk '{printf ("%.1f\n", )}' file
1.0
1.6
0.0
0.7
2.0
3.0
3.7

您可以说 %e 表示科学格式,%.5f 表示 5 位数字等。有关详细信息,请参阅提供的 link。

awk 的解决方案类似,您也可以将 printf 与 bash 一起使用,例如通过 xargs:

cat file.txt | xargs -n 1 printf "%.1f\n"

printf 的格式化选项为similar

请注意,printf(对于 awk 或 bash)将输出四舍五入的值。因此,如果您的输入中包含 0.77,则 %.1f 格式的结果将为 0.8.