2011-05-03 81 views
28

我正在編寫一個shell腳本來創建一些配置文件。在sed中使用斜槓替換

我還必須替換文件中的一些模式,並且應該用路徑替換一個模式。

所以我的問題是:有沒有一種方法來取代我的佔位符webpath路徑沒有在斜線前面設置反斜槓?

也許有另一種工具可以做到這一點?

回答

46

您可以通過backslashing它使用替代正則表達式的分隔符爲搜索模式:

sed '\,some/path,d' 

而只是把它當作是爲s命令:

sed 's,some/path,other/path,' 

你可能想保護其他元字符,但;這是使用Perl和quotemeta或其他腳本語言中的等價物的好地方。

man sed

/regexp/
匹配線匹配正則表達式regexp

\cregexpc
匹配線匹配正則表達式regexpc可能是反斜線或換行符以外的任何字符。

s/regular expression/replacement/flags
用替換字符串替換模式空間中正則表達式的第一個實例。除了反斜槓或換行符以外的任何字符都可以用來代替斜線來分隔RE和替換。在RE和替換內部,RE分隔符本身可以用作文字字符,前提是前面有反斜槓。