2016-07-29 19 views
0

我需要替換字符串'../lib' to '/usr/share/server/bootstrap/lib'在文件bootstrap.sh與轉義序列桑達表達

我用下面的sed表達

sed -i -e 's//././/lib///user//share//server//bootstrap//lib/g' bootstrap.sh 

它失敗,並在日誌

sed: -e expression #1, char 6: unknown option to `s' 

無法識別表達中的錯誤。善意幫助。

+0

此外,你似乎是混合正斜槓和反斜槓的含義。 – tripleee

回答

1

你需要逃出每./

sed -i -e "s/\.\.\/lib/\/usr\/share\/server\/bootstrap\/lib/" bootstrap.sh 

替代方式使用#作爲分隔符,而不是/以避免出現兩個多反斜槓。

感謝sp asic

sed -i "s#../libs#/usr/share/server/bootstrap/lib#" bootstrap.sh 
+0

謝謝..稍微更新它.. -i -e「s /\.\.\/ lib/\/usr \/share \/server \/bootstrap \/lib/g」bootstrap.sh –

+0

爲什麼不使用不同的分隔符和避免太多的反斜槓.. http://stackoverflow.com/documentation/sed/1096/substitution/12280/using-different-delimiters#t=20160729084928666254 – Sundeep

+0

謝謝,更新的答案。 – sozkul