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

如何通过awk实现指定分组格式输出?现有命令输出不符预期

解决awk命令输出格式问题

看起来你是想把每行包含标题的输入数据,整理成「标题单独一行,对应内容行紧随其后」的分组格式对吧?你当前得到的是每行重复标题的结果,咱们调整下awk命令就能解决。

先明确你的目标输出:

RXOTG-136
VENEN6 0
VENEN6 1
VENEN7 0
VENEN7 1
RXOTG-137
TIVIK6 0
TIVIK6 1
RXOTG-138
KESTA1 0
KESTA1 1
KESTA2 0
KESTA2 1
KESTA3 0
KESTA3 1
RXOTG-139
KESTA4 0
KESTA4 1

你之前用的awk 'NF==1{a=$1; next}{ print val}'存在两个问题:一是变量val未定义(你应该是想写存标题的a),二是逻辑上会把标题和内容拼接成一行,不符合你的需求。

试试这个修正后的awk命令:

awk 'prev != $1 {print $1; prev=$1} {print $2, $3}'

简单解释下逻辑:

  • 我们用变量prev来记录上一行的标题,当当前行的标题($1)和prev不一样时,先打印这个新标题,然后更新prev为当前标题
  • 不管标题有没有变化,都会打印当前行的内容部分(也就是第二、第三个字段$2, $3)

这样就能精准输出你想要的格式啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:29:23