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

如何在每m行后移除n块连续行?数据行批量处理问询

通用方案:每m行后移除n行连续内容

如果需要对文本文件执行周期性保留m行、移除n行的操作(即按「保留m行 → 删除n行 → 保留m行 → 删除n行……」的规则处理整个文件),可以用以下几种常用命令行工具实现:

方法1:使用awk(推荐,灵活易读)

awk是处理文本的强大工具,通过行号判断即可实现需求:

# 替换m和n为实际需要的数值,input.txt是目标文件
awk -v keep=m -v skip=n '((NR-1) % (keep+skip)) < keep' input.txt

逻辑解释

  • NR 代表当前处理的行号(从1开始计数)
  • (NR-1) % (keep+skip) 计算当前行在「保留m行+删除n行」的周期内的相对位置(从0开始)
  • 若相对位置小于keep(即属于该周期内需要保留的行),则输出该行;否则跳过

针对你给出的示例场景(保留第1行,删除第2-3行,保留第4-5行)这种非周期性需求,也可以用awk直接指定行范围:

awk 'NR==1 || (NR>=4 && NR<=5)' input.txt

该命令会精准输出你需要的结果。

方法2:使用sed

sed适合简单的周期性文本处理,命令格式如下:

# 替换m和n为实际数值
sed -n '1~'$((m+n))','$((m))'~'$((m+n))'p' input.txt

逻辑解释

  • 1~k 表示从第1行开始,每k行选中一次,这里k = m+n(一个周期的总行数)
  • 1~k,m~k 表示选中每个周期内的前m行,p命令用于打印这些行

比如当m=1、n=2时,命令会打印第1、4、7……行,符合「每保留1行后删除2行」的周期性规则。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:30:58