2017-07-24 29 views
1

我正在使用下面的代碼來進行一些計算。我試圖將我的數據四捨五入到最接近的整數,沒有任何小數或E + 06。我提供了示例輸出。我感謝任何幫助。我試圖執行printf「%.0f」進入我的命令,但我無法弄清楚如何讓它工作。使用AWK輪到E + 06和列計算

任何幫助,將不勝感激。

代碼

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 

回答

0

%.0f:這意味着輸出不會有任何的精度,意思是四捨五入。

[email protected]:/tmp$ cat f 
Scaf1 7.74271e+06 7.74771e+06 
Scaf2 8.21606e+06 8.22106e+06 
Scaf3 6291789 629678 

[email protected]:/tmp$ awk '{printf ("%s %.0f %.0f\n",$1,$2,$3)}' f 
Scaf1 7742710 7747710 
Scaf2 8216060 8221060 
Scaf3 6291789 629678