
本文讲解如何用 sed 命令在 html 文件中精准定位某一行(如 ``),并在其**正前方插入一行新内容**,重点解决因缩进空格导致匹配失败的常见问题。
在处理 HTML 或其他格式化文本时,直接使用 sed '/pattern/i text' 插入内容看似简单,却极易因空白符(空格、制表符) 导致匹配失败。例如,原始 HTML 中 行通常被缩进(如前面有 2 个空格或 1 个 tab),而正则表达式中若写 /^ ✅ 正确做法是:允许并跳过行首可能存在的空白符。推荐使用 POSIX 字符类 [[:space:]]*(兼容空格、tab、换行符等): ⚠️ 注意事项: 把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。 ? 小结:^ 不等于“可见内容开头”,而是“物理行首”。处理缩进文本时,始终优先考虑 [[:space:]]* 前缀;若追求更高可靠性,可结合 awk 或专用 HTML 工具(如 xmlstar、pup)进行结构化操作——但对轻量级自动化任务,修正后的 sed 已足够精准高效。sed '/^[[:space:]]*<link[^>]*rel="stylesheet"[^>]*href="[^"]*styles\.css"[^>]*>/i \
<link href="https://fonts.googleapis.com/css?family=Noto+Serif" rel="stylesheet">' test.html

















