我有以下文件:
lab1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt
344 server1
1 server2
我希望能够将每一行的数字相加 - 所以在本例中,我想添加 344 + 1,最终得到 345。
到目前为止,我已经弄清楚了以下步骤:
lab-1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt |awk '{print $1}'
344
1
但我不知道如何将它们加在一起。我知道我可以只使用 $a + $b 语法,但是如何将 344 和 1 放入单独的变量中来做到这一点?
谢谢。
编辑1
我得到了两个返回值,而不仅仅是一个总数。看不到我做错了什么:
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{print $1}' | awk '{ sum+=$1} {print
sum}'
344
345
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{ sum+=$1} {print sum}'
344
345
答案1
您可以轻松地在 awk 中进行数学运算。这是一个例子:
awk '{ total+=$1 } END { print total }'
如果你真的想使用 bash,你可以使用一个简单的循环一次读取一行并将其相加:
count=0
while read -r number _; do # put the first column in "number" and discard the rest of the line
count=$(( count + number ))
done < /tmp/foo
echo $count