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

如何在Windows下用GNU SED在多行代码块前插入行并缩进块

实现方案

你可以直接用以下GNU sed命令完成需求,不需要用到缓冲区,仅通过范围匹配+行内动作分组即可实现:

# Git Bash/WSL等类Shell环境使用单引号版本
sed '/```/,/```$/{
/^```/i\===
s/^/    /
}' test.md

如果是在Windows默认的CMD环境中执行,需要把单引号替换为双引号:

sed "/```/,/```$/{
/^```/i\===
s/^/    /
}" test.md

命令逻辑说明

  • 外层/```/,/```$/匹配所有以开头、结尾的多行代码块范围,范围内所有行都会进入后续大括号的分组处理
  • 分组内第一条规则/^```/i\===:仅匹配代码块的起始行(即开头的```标记行),在该行之前插入===
  • 分组内第二条规则s/^/ /:给代码块内的每一行开头加4个空格完成缩进,写法比捕获整行替换更简洁

你提供的示例输入执行该命令后,输出和要求的结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:09:00