首页 > 解决方案 > 为什么 'next' 对 awk 有影响

问题描述

当我在 awk 表达式中添加“next”时,Avg 的值完全不同。

平均:50.5 总和:5050

平均:50.49 总和:5049

我不明白它是怎么发生的。如果有人能向我解释,我将不胜感激。

标签: shellawk

解决方案


终止该next输入行的处理,从而防止为该行运行第二个块(没有条件的块,否则它会为每一行输入运行)。

因此,它防止total被初始化为第 1 行的值,并导致您的total值太低(当您的输入来自seq并且第一行仅包含时1)。

如果你想要next,那么你需要total在那个块中初始化以避免抛出你的结果:

NR==1 {
  min = max = total = $1
  next
}

推荐阅读