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

时间:2015-01-09 13:52:03

标签: bash awk floating-point integer

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解决方案?无论何处是整数,都转换为浮点数。

2 个答案:

答案 0 :(得分:3)

awk,只需指明要用于打印结果的格式即可。使用printf表示您需要1个十进制数字:

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

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

答案 1 :(得分:1)

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

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

printf的格式选项为similar

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