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

如何使用sed在不同起始标记的行组之间插入空白行?

使用sed在不同起始标记的行组间插入空白行

需求说明

输入内容(按开头数字分组的行):

12 line1
12 line2 
12 line3
13 line4
13 line5

期望输出(不同组之间插入空白行):

12 line1
12 line2 
12 line3

13 line4
13 line5

解决方案

可以使用以下sed命令实现:

sed -e '$!N; /^\([0-9]*\) .*\n\1 /!s/\n/\n\n/; P; D' input.txt

命令解释

  • $!N:除最后一行外,将下一行内容追加到当前模式空间中,实现两行对比
  • /^\([0-9]*\) .*\n\1 /!:正则匹配当前行开头的数字标记和下一行开头标记不一致的情况
  • s/\n/\n\n/:当满足上述不匹配条件时,在两行之间插入一个换行符(即空白行)
  • P; D:打印模式空间中的第一行内容,然后删除第一行并继续处理剩余内容,循环完成所有行的处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:45:34