arrays - ")syntax error: invalid arithmetic operator (error token is "用数组循环时

标签 arrays linux bash awk carriage-return

<分区>

我有这样一个文件:

<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

但我得到:“)语法错误:无效的算术运算符(错误标记是”

我阅读了所有类似的问题并尝试了不同的方法,但似乎没有任何效果。

最佳答案

你可以用这个替换所有,

$ awk -F'>' '{sum+=($2-4.78)^2} END{print sum}' file

18.1136

关于arrays - ")syntax error: invalid arithmetic operator (error token is "用数组循环时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42446759/

相关文章:

bash - 如何将命令输出的第二行读入 bash 变量?

bash - 通过 ssh 使用本地和远程值执行多个命令

javascript - 数组作为 map 返回错误的长度

javascript - 如果两个数组具有相同的ownerId,如何比较它们

javascript - 按 Angular.js 中的公共(public)对象属性过滤数组?

linux - awk 命令创建单个列的 sha2 并粘贴到新文件中

linux - 如何在 shell 脚本中将时间戳转换为小时/分钟/秒?

php - 如何将项目添加到可以在另一个页面上访问的javascript数组?

linux - Bash:格式化 printf 中的字符串

linux - Hadoop 显示的 map 输入记录数与目录中所有文件中的行数不同