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

如何使用Awk对两行数据的对应列数值做减法计算得到预期结果

Awk两行对应列数值相减实现方案

原代码错误原因

  • Awk默认以换行符作为记录分隔符(RS),每一行对应一条独立的处理记录,你将字段分隔符FS设置为换行符后,每行只会被识别为1个字段,且处理第二行时无法读取到第一行的字段内容,因此无法实现对应列相减的逻辑。

正确实现代码

awk 'NR == 1 {
    # 第一行遍历所有字段存入数组
    for(i=1; i<=NF; i++) col[i] = $i
}
NR == 2 {
    # 第二行遍历所有字段做减法输出
    for(i=1; i<=NF; i++) {
        printf "%d ", col[i] - $i
    }
    # 输出换行符补全格式
    print ""
}' 输入文件名

运行效果

针对你提供的输入数据:

34 43 67 87
21 22 64 43

运行上述代码后会直接输出期望结果:

13 21 3 44

内容的提问来源于stack exchange,提问作者BaleKaneSon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:36:03