【问题标题】:Using AWK to round E+06 and column calculations使用 AWK 舍入 E+06 和列计算
【发布时间】:2017-07-24 22:26:23
【问题描述】:

我正在使用下面的代码进行一些计算。我正在尝试将我的数据四舍五入到最接近的整数,没有任何小数或 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

【问题讨论】:

    标签: shell awk rounding


    【解决方案1】:

    %.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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多