내가 이해한 바로는 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}"