我有一個文件temp.txt。浮點值在那裏。從文件讀取浮點數並將它們添加到unix shell腳本中
cat temp.txt
43.51
26.52
63.31
21.36
1.01
13.91
19.64
30.98
我想添加這些值。
請有人幫我解決這個問題。
我有一個文件temp.txt。浮點值在那裏。從文件讀取浮點數並將它們添加到unix shell腳本中
cat temp.txt
43.51
26.52
63.31
21.36
1.01
13.91
19.64
30.98
我想添加這些值。
請有人幫我解決這個問題。
awk '{s+=$0}END{print s}' tmp.txt
kent$ echo "43.51
26.52
63.31
21.36
1.01
13.91
19.64
30.98"|awk '{s+=$0}END{print s}'
220.24
這裏有一個基於 'BC' 版本:
#!/usr/bin/env bash
tally=0
while read value
do
tally=`echo "scale=3;${value} + ${tally}" | bc`
done < tmp.txt
其中tmp.txt包含:
43.51
26.52
63.31
21.36
1.01
13.91
19.64
30.98
運行輸出是:
./script-math
220.24
可以修改成爲:
#!/usr/bin/env bash
tally=0
while read value
do
tally=`echo "scale=3;${value} + ${tally}" | bc`
done
所以,你可以:
cat tmp.txt | ./script-math
嘗試這種短變體
paste -sd+ temp.txt|bc
發現在廣義含方式:) #/斌/慶典 文件答案=」 /basepath/temp.txt「 sum ='awk'{for(i = 1; i <= NF; i ++)s + = $ i} END {print s}'$ file' echo $ sum – sasuke 2013-04-25 17:43:23
@sasuke你評論中的awk行不適用於你的temp.txt。每行有一個數字。您找到的awk行將所有數字都在一行中,並以空格分隔 – Kent 2013-04-25 17:47:40