用makefile中的sed替换包含变量名的字符串

时间:2016-02-29 13:25:08

标签: sed makefile

我想用sed:

替换Makefile中的另一个字符串
* old string: $(ISM_DEPTH)/obj/lib/mylib.a
* new string: $(ENVIRONMENT_ROOT)/lib/

所以,我使用了这个命令:

sed -e 's,$(ISM_DEPTH)/obj/lib/mylib.a,$(ENVIRONMENT_ROOT)/lib/,g' -i Makefile

问题是sed将用它们的值替换$(ISM_DEPTH)和$(ENVIRONMENT_ROOT),我不会这样做。

1 个答案:

答案 0 :(得分:1)

您需要转义$字符。要在Makefile中执行此操作,需要编写双倍美元 - $$。:

sed -e 's,$$(ISM_DEPTH)/obj/lib/mylib.a,$$(ENVIRONMENT_ROOT)/lib/,g' -i Makefile