使用cat加载HTML并使用sed通过Makefile导入

时间:2012-10-10 07:37:07

标签: sed makefile grep cat

长时间潜伏,但第一次海报。我有一个Makefile问题,不知道在哪里发布问题,但我希望我选择了正确的类别。

我正在使用骨干模板并将我的html拆分为多个文件。 索引文件包含此{template}文本。我正在计划使用tha Makefile从多个HTML文件加载文本,并将{template}变量替换为这些文件中的内容。

生成文件 包括:

$(eval data := $(shell cat "file.html"))
sed -i '' 's/$({template})/$(data)/' index.html

sed代码使lika成为一个魅力,如果我强制它有文本,它会用数据值替换它,但是cat会断开并给我一个Error 1

我试过了两个:

$(eval data := $(shell grep -nr file.html))
$(eval data := $(shell cat "file.html"))

当他们达到普通角色以外的其他人时,他们都会失败。 我还没弄明白如何将html数据加载到变量中。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

由于/template中可能存在data字符,这会破坏您的sed命令。

有两种方法可以解决这个问题:

  1. 使用不同的正则表达式分隔符,确定字符串中不存在。
  2. 逃离/字符。
  3. 使用此命令可以轻松完成转义:

    sed -e 's:/:\\/:g'