使用AWK来舍入E + 06和列计算

时间:2017-07-24 22:26:24

标签: shell awk rounding

我正在使用下面的代码进行一些计算。我试图将我的数据四舍五入到最接近的整数,没有任何小数或E + 06。我提供了样本输出。我感谢任何帮助。我试图在我的命令中实现 printf"%。0f" ,但我无法弄清楚如何让它工作。

任何帮助都将不胜感激。

代码

awk '{$2= ($3)*0.25 -2500; $3= ($3)*0.25 +2500 ; print $1"\t"$2"\t"$3 ;}' file.bed> temp

示例输出

Scaf1 7.74271e+06 7.74771e+06
Scaf2 8.21606e+06 8.22106e+06
Scaf3 6291789 629678

1 个答案:

答案 0 :(得分:0)

%.0f:意思是输出没有精度,意味着四舍五入。

akshay@db-3325:/tmp$ cat f
Scaf1 7.74271e+06 7.74771e+06
Scaf2 8.21606e+06 8.22106e+06
Scaf3 6291789 629678

akshay@db-3325:/tmp$ awk '{printf ("%s %.0f %.0f\n",$1,$2,$3)}' f
Scaf1 7742710 7747710
Scaf2 8216060 8221060
Scaf3 6291789 629678