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

如何按‘-’分组提取每组指定行?awk命令调试求助

提取分组文本指定行的正确awk命令

问题原因

你用awk 'NR%6==1'的逻辑是按全局行号每6行取第一行,但你的文件以-作为分隔符,每组是分隔符后的7行,这个逻辑和实际分组结构不匹配,导致输出不符合预期。

正确实现

使用以下awk命令可以精准提取每组的第6行:

/-/{cnt=0; next} {cnt++} cnt==6

命令解释

  1. 当读取到分隔符-时,重置计数器cnt为0,并跳过当前行(不处理分隔符本身)
  2. 读取非分隔符行时,计数器cnt自增1
  3. 当cnt等于6时,输出当前行(即每组的第6行)

执行该命令后,输出结果将完全符合你的期望:

line6
line12
line18

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:54:54