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

如何修改sed命令,在指定匹配行后/前添加换行符?

问题与解决方案

一、在DO-NOT-TOUCH-BEGIN行后添加空行

原命令用于输出从第一行到包含DO-NOT-TOUCH-BEGIN的所有行:

sed -ne '1,/DO-NOT-TOUCH-BEGIN/p' filename.txt

修改后的命令可在目标行后追加空行:

sed -ne '1,/DO-NOT-TOUCH-BEGIN/{p; /DO-NOT-TOUCH-BEGIN/a\\}' filename.txt

原理说明

  • 用{}将范围1,/DO-NOT-TOUCH-BEGIN内的操作分组,确保仅对该范围内的行执行后续逻辑
  • p:正常打印当前行
  • /DO-NOT-TOUCH-BEGIN/a\\:匹配到目标行时,通过sed的a命令追加一个空行(a后接\\代表空行)

示例

输入内容:

hello
there
DO-NOT-TOUCH-BEGIN
not
this
DO-NOT-TOUCH-END
extra
lines

执行命令后输出:

hello
there
DO-NOT-TOUCH-BEGIN


二、在DO-NOT-TOUCH-END行前添加空行

原命令用于输出从包含DO-NOT-TOUCH-END的行到文件末尾的所有行:

sed -ne '/DO-NOT-TOUCH-END/,$p' filename.txt

修改后的命令可在目标行前插入空行:

sed -ne '/DO-NOT-TOUCH-END/{i\\}; /DO-NOT-TOUCH-END/,$p' filename.txt

原理说明

  • /DO-NOT-TOUCH-END/{i\\}:匹配到目标行时,通过sed的i命令在当前行前插入一个空行(i后接\\代表空行)
  • 保留原有的/DO-NOT-TOUCH-END/,$p逻辑,确保输出从目标行到末尾的内容

示例

输入内容同上,执行命令后输出:

DO-NOT-TOUCH-END
extra
lines

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:40:02