2009-02-19 21 views
3

如果我有一個文件包含一些轉義的parens,我怎樣才能用一個非轉義的paren使用Perl來替換所有的實例?如何在Perl正則表達式中轉義左側paren?

即關閉此:

.... foo\(bar .... 

這個

.... foo(bar .... 

我嘗試以下,但receivied此錯誤消息:

perl -pe "s/\\\(/\(/g" ./file 
Unmatched (in regex; marked by <-- HERE in m/\\(<-- HERE/at -e line 1. 

回答

11

你忘記了反斜線意味着東西外殼也是。嘗試使用單引號而不是雙引號。 (或者把你的腳本放在一個文件中,你不需要擔心shell引用。)

+0

嘎,不敢相信我沒有想到這一點。星期五不會很快來。 – dmercer 2009-02-19 21:56:35

6

Gah。從命令行,不下。太多的元字符解釋水平。

嘗試用單引號替換雙引號,看看是否有幫助。

+0

謝謝,你比之前的答案落後了大約8秒。乾杯 – dmercer 2009-02-19 21:57:30