私が理解したところ、bash
他のインタプリタは整数に対してのみ算術演算を実行します。下のfor
ループでこれをどのように実行できますか?使用できると読んでいますが、この場合どのように使用するのかbc
わかりません。bc
total=0
for number in `cat /path/to/file`; do
total=$(($total+$number))
done
average=$(($total/10))
echo Average is $average
文書:
1.143362
1.193994
1.210489
1.210540
1.227611
1.243496
1.260872
1.276752
1.294121
1.427371
答え1
bc
おそらくこの目的に使用したくないでしょう。おそらくawk
より良いでしょう。
awk '{sum+=$1};END{print sum/NR}' /path/to/file
答え2
答え3
bc
浮動小数点演算に一般的に使用するもの:
file=1.txt
echo '('$(<$file)')/'$(wc -l < $file) | sed 's/ /+/g' | bc -l
答え4
term=0
file=input
for number in `cat "$file"`; do
term="${term}+${number}"
done
total="$(echo "$term" | bc -l)"
average="$(echo "${total}/10" | bc -l)"
average="$(echo "$average" | sed -e 's/^\(.*\..*[^0]\)0*/\1/' -e p)"
echo "Total: ${total}"
echo "Average: ${average}"