2013-12-14 83 views
0

雙號我想要做在bash的總和,但數字是用點而不是用逗號(例如:1.2333)如何總結在bash

我試圖做這個腳本

#!/bin/bash 
somma=0 
n=0 
tempo=0 
val=0 
while read -r val1 val2 
do 
    somma=$((somma += val1)) 
    tempo=$(echo $tempo += $val2 | bc) 
    n=$((n +=+1)) 
done < "ret.txt" 
echo $tempo 

但我得到這個錯誤:

(standard_in) 1: syntax error 
+0

爲什麼不使用支持浮點數的工具? –

回答

1
#!/bin/bash 
somma=0 
n=0 
tempo=0 
val=0 
while read -r val1 val2; do 
    ((somma += val1)) 
    tempo=$(bc <<< "$tempo + $val2") 
    ((n++)) 
done < "ret.txt" 
echo "$tempo" 
3
awk ' 
    {sum1 += $1; sum2 += $2} 
    END {print "somma=" sum1; print "tempo=" sum2} 
' filename 

如果你需要那些價值s在你的bash腳本中,eval該awk命令的輸出,或者:

read somma tempo < <(
    awk '{sum1 += $1; sum2 += $2} END {print sum1, sum2}' filename 
)