【问题标题】:Read a file line by line with condition in shell script [duplicate]使用shell脚本中的条件逐行读取文件[重复]
【发布时间】:2017-03-23 00:56:43
【问题描述】:

我有一个文件 errorgot.log

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

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

感谢之前

【问题讨论】:

  • 你已经尝试了什么?

标签: bash


【解决方案1】:

这应该可行:

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

它是如何工作的?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 2013-03-07
    • 1970-01-01
    • 2014-02-24
    • 2013-05-23
    • 2015-12-14
    • 2015-05-19
    相关资源
    最近更新 更多