2013-10-19 68 views
0

我只是試圖向sed搜索添加if-then語句。在正則表達式中是(?(?=phrase)then_code|else_code)如何在sed中編寫if-then語句

下面是對應的正則表達式的代碼,我有:

"[^"]*"(?(?=,)[^.]*.|[^!]*!) 

它匹配以下:

等等等等等等"Hello", Bob said。 Blah等等等等 "Goodbye"!等等等等

注意:請不要詢問此示例的實用性;真實的代碼是實用的。

我該如何在sed中搜索?

回答

2

就我所知,該語法只存在於Perl正則表達式中。您必須使用psed程序,顧名思義,該程序是一個用Perl編寫的程序sed(因此使用Perl的正則表達式引擎)。我相信它隨Perl發行版一起提供;這種或那種方式,它結束了我的路徑。

您也可以只需直接使用Perl與-p-i-e參數在一組文件的運行對每行任意Perl代碼:

$ (echo one; echo two; echo three) | perl -p -i -e 's/t/q/g' 
one 
qwo 
qhree 

perldoc perlrun