我有一个文本文件,其中包含旅行距离的结果列表
旅行距离.txt
12.1 meters
14.1 meters
每当我尝试计算距离的总和时,结果都会显示此消息
12.1
12.1
26.2
26.2
但是,如果我从旅行距离文本文件中删除“米”这个词,它可以完美地计算,例如
12.1
26.2
有没有办法读入字符串数据并允许完美计算距离,例如
12.1 meters
26.2 meters
我什至尝试过 while 循环,但它甚至不起作用。我的代码如下所示
#!/bin/bash
SUM=0;
for n in $(cat DistanceLog_TD01.txt)
do
SUM=$(echo "$SUM + $n" | bc); #Need help here
echo $SUM;
done
echo $(date +"%m-%d-%Y %T") "Total distance:" $SUM "meters" >> totaldistance.txt
谢谢!
使用awk
:
<infile awk '{ print sum+=$1, $2 }'
将日期和时间添加到输出中:
<infile awk '{ print sum+=$1, $2 }
END{ print date_time }' date_time="$(date +'%F %T')"
请注意,上面的“date_time”将是命令awk执行之前的日期和时间。如果您需要的日期和时间,当AWK完成了加工,这样做:
<infile awk '{ print sum+=$1, $2 }' && echo "$(date +'%F %T')"
或者,如果您有该功能的GNU awkstrftime()
:
<infile awk '{ print sum+=$1, $2 } END{ print strftime("%F %T") }'
在一行中添加日期和时间和输出:
<infile awk '{ sum+=$1 } END{ print sum, $2, date_time }' date_time="$(date +'%F %T')"
同样,您可以使用 GNU awk 的 strftime() 函数来输出日期和时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句