我想用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),我不会这样做。
答案 0 :(得分:1)
您需要转义$
字符。要在Makefile中执行此操作,需要编写双倍美元 - $$
。:
sed -e 's,$$(ISM_DEPTH)/obj/lib/mylib.a,$$(ENVIRONMENT_ROOT)/lib/,g' -i Makefile