Я пытаюсь вычислить сумму пройденного расстояния, и в текстовом файле она вычисляется идеально. Однако результаты будут округлены до 4 знаков после запятой
Например, всякий раз, когда я пытался сложить 10,1361234 и 10,1461621 метра из Distance Log, вместо отображения исходного результата 20,2822855, результат округлялся, как показано ниже.
totaldistance.txt
2021-04-09 13:44:26 Total distance: 20.2823 meters
DistanceLog.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
is %.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"