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

如何用sed删除模式匹配后的首个空白行

使用sed删除匹配模式后的首个空白行

针对你的需求,正确的sed命令如下:

# 预览处理结果(不修改原文件)
sed '/b/{n;/^$/d}' FILE

# 原地修改文件(直接覆盖原文件)
sed -i '/b/{n;/^$/d}' FILE

命令逻辑说明:

  • /b/:匹配到包含"b"的行时,执行花括号内的指令
  • n:读取匹配行的下一行到模式空间
  • /^$/d:如果读取到的是空白行(^$匹配空行),则删除该行

效果验证:

原文件内容:

a

b
c

d

执行命令后结果:

a

b
c
d

原写法失效原因:

你之前尝试的sed -i '/b/,/^$/{//d}' FILE是匹配从"b"行到首个空白行的范围,然后删除范围内的匹配行(即"b"行和空白行),会误删目标模式行,不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:55:14