在shell脚本中逐行读取文件

时间:2017-03-22 16:47:21

标签: bash

我有一个文件errorgot.log

1 23 23
2 22 42
3 12 2
4 5 26
5 14 45

我想用shell脚本汇总一行中的所有第三个数字。 例如,23 + 42 + 2 + 26 + 45 = 138

谢谢bfore

1 个答案:

答案 0 :(得分:1)

这应该有效:

awk '{sum += $3}END{print sum}' errorgot.log

它是如何运作的?

  • awk逐行读取文件,将每一行拆分为分隔符(默认为空格),并为第一列分配编号变量$1,为第二列分配$2等等)
  • 之后awk在大括号({sum += $3})之间执行代码。在我们的例子中,我们在变量sum
  • 中累积总和
  • 处理完文件后,awk执行我们正在打印END变量的sum部分的代码