我正在嘗試計算行進距離的總和,並且它在文字檔案中計算得很好。但結果將四捨五入至小數點後 4 位
例如,每當我嘗試從距離日誌添加 10.1361234 和 10.1461621 公尺時,結果將四捨五入,如下所示,而不是顯示原始結果 20.2822855
總距離.txt
2021-04-09 13:44:26 Total distance: 20.2823 meters
距離記錄.txt
2021-04-09 12:31:55 Distance travelled: 10.1361234 meters
2021-04-09 12:31:55 Distance travelled: 10.1461621 meters
但是,我想保留原始的十進制值而不進行四捨五入。有什麼辦法可以做到嗎?下面附上我的程式碼
#!/bin/bash
SUM=0;
<DistanceLog.txt >> totaldistance.txt awk '{ SUM+=$6 } END{ print date_time,echo"Total distance:", SUM,distance }' date_time="$(date +'%F %T')" distance="meters"
謝謝你!
答案1
如果您查看awk手冊頁,預設值awk OFMT
是%.6g
(6指定有效位數);您可以變更為.6f
指定小數點後的位數,或%f
沒有限制。所以:
<infile >>outfile awk '{ SUM+=$5 }
END{ OFMT="%.6f"; print date_time, "Total distance:", SUM, distance }' \
date_time="$(date +'%F %T')" distance="meters"