2

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

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

Makefile 包括:

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

sed 代码很有效,如果我强制它包含文本,它会用数据值替换它,但是猫会中断并给我一个Error 1.

我都试过了:

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

当他们到达一个非普通角色时,他们都失败了。我还没有弄清楚如何将 html 数据加载到变量中。

有什么建议吗?

4

1 回答 1

0

由于/角色可能出现在 yourtemplate和 yourdata中,这会破坏你的 sed 命令。

有两种处理方法:

  1. 使用不同的正则表达式分隔符,您确定字符串中不存在该分隔符。
  2. 逃离你的/性格。

使用以下命令可以轻松完成转义:

sed -e 's:/:\\/:g'
于 2015-02-03T11:44:01.070 回答