2010-04-26 111 views
0

如何通過由makefile控制的SED追加到行尾?在makefile中用SED替換行結尾

我跑

paste -d" " t.tex tE.tex | sed '[email protected][email protected]@' > tM.tex 

是哪裏的問題,在使用該商標$爲行的末尾。

我得到

#paste -d" " t.tex tE.tex | sed -e s/" "/\\\&/g | sed -r "s/XXX/" > tM.tex 
sed: -e expression #1, char 10: unterminated `s' command 
make: *** [all] Error 1 

我的命令只是「所有」之後我的makefile文件只包含兩行標籤。

參數-n-e在這裏沒有幫助。 該命令在終端直接運行時按預期運行。

+0

您可以添加一些示例輸入和您的預期輸出嗎? – IanNorton 2010-04-26 13:31:25

回答

4

$字符是在Makefile中一個特殊字符。要在命令中得到一個字面值$,您需要在前面加上另一個前綴來引用它:$$。有關更多信息,請參見GNU make手冊中的6.1 Basics of Variable References

0

您錯過了最後一個sed命令的最後一個「/」。

paste -d" " t.tex tE.tex | sed s/" "/\\\&/g | sed -r "s/XXX//" > tM.tex 

這個工作正常,我在Linux上,但是這不包含$燒焦你的問題中提到