Text-Processing
四捨五入到最接近的數字
我有一個包含這樣數據的文件
vserver-1 vserver-1_root 0.95 0.0019043 0.948047 vserver-1 home 10.00 8.25 1.75 vserver-1 usr 95 45.65 39.35 vserver-1 file0 100 89.15 10.85
所需的格式化輸出
awk
(四捨五入到最接近的整數)vserver-1 vserver-1_root 1 0 1 vserver-1 home 10 8 2 vserver-1 usr 95 46 39 vserver-1 file0 100 89 11
使用
%0.f
是將浮點值轉換為最接近的整數的最簡單方法:awk '{printf ("%s %s %.0f %.0f %.0f\n",$1,$2,$3,$4,$5)}' file
假設您已修復 5 列文件,那麼您將執行以下操作:
awk '{printf("%s %s %d %d %d\n",$1, $2, $3+.5, $4+.5, $5+.5)}' infile
這會將0.5添加到欄位,然後
%d
將刪除小數部分,導致通常舍入到最接近的整數,一半(例如 2.5)向上舍入。