2016-02-29 73 views
1

的sed我想另一個替換Makefile中的字符串使用SED:替換字符串包含變量名中生成文件

* 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

[在bash單引號和雙引號的區別(可能的重複http://stackoverflow.com/questions/6697753/difference-between -single-and-double-quotes-in-bash) –

回答

1

您需要轉義$字符。要做到這一點Makefile中它的需要來寫雙美元 - $$

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

感謝您的回答。真的行 – ARM

相關問題