You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的awk脚本无法将0作为一行读取?

问题分析与解决

原脚本的问题出在模式匹配$0:在awk中,当$0的值为0时,会被当作布尔假值,导致该行的代码块完全不执行,所以包含0的行被跳过,无法参与计数和求和。

修改后的脚本

BEGIN { x = 0; sum = 0 }
{
    x += 1
    sum += $0
    if (x == 2) {
        print sum / x
        x = 0
        sum = 0
    }
}

修改说明

  • 移除了原脚本中的$0模式,改为无模式的代码块,这样每一行输入都会被处理,包括值为0的行。
  • 显式在BEGIN块中初始化sum,让代码逻辑更清晰(原脚本中sum首次使用会自动初始化为0,但显式初始化更严谨)。

测试验证

输入:

2
3
4
0

输出:

2.5
2.0

输入:

2
3
6
7

输出:

2.5
6.5

内容的提问来源于stack exchange,提问作者Dawid Kozłowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:16:03