首页 > 解决方案 > 如何使用 sed 将 CSS 样式文件内联到 HTML 文件?

问题描述

我正在尝试用内联样式标记替换 HTML 标头中的 CSS 文件引用。我正在从文件中搜索以下行。

<link rel="stylesheet" href="style.css" type="text/css">

我想用一行替换上一行

<style>(content of style.css file here)</style>

我有以下 sed 命令进行操作

sed "s/<link rel=\"stylesheet\" href=\"style.css\" type=\"text\/css\">/<style>$(cat style.css)<\/style>/" index.html

但是,sed 不喜欢命令中的 CSS 文件内容并给出错误。

sed: -e expression #1, char 84: unterminated `s' command

该命令可以在没有 style.css 文件内容的情况下正常工作。如何使此命令执行我想做的事情,或者是否有替代解决方案来执行相同的操作?

标签: htmlcssbashsed

解决方案


使用 GNU

sed $'/<link rel="stylesheet" href="style.css" type="text\\/css">/{e "<style>$(cat style.css)</style>"\n}' index.html

在线尝试!(repl.it)


推荐阅读