我有一个这样的文件:
<Overall>3
<Overall>1
<Overall>4
<Overall>5
...
我试图读取整个标记后的数字,将它们放在一个数组中,然后用它们进行操作,将结果添加到总数中。
array=($(grep '<Overall>' "$file" | cut -d'>' -f 2))
total=0
for each in "${array[@]}"
do
total+=$(awk -v awkEach="${array[$each]}" 'BEGIN{print (awkEach-4.78)^2}')
done
但我得到:“)语法错误:算术运算符无效(错误标记为”
我读了所有类似的问题并尝试了不同的东西,但似乎没有任何效果。
答案 0 :(得分:4)
你可以用这个替换所有,
$ awk -F'>' '{sum+=($2-4.78)^2} END{print sum}' file
18.1136