0

我只是想在 sed 搜索中添加一个 if-then 语句。在正则表达式中是(?(?=phrase)then_code|else_code).

这是我拥有的等效正则表达式代码:

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

与以下内容匹配:

呜呜呜"Hello", Bob said。哈哈哈哈哈哈哈 "Goodbye"!哈哈

注意:请不要问这个例子的实用性;真正的代码是实用的。

我将如何在 sed 中搜索它?

4

1 回答 1

2

据我所知,这种语法只存在于 Perl 正则表达式中。您必须使用该psed程序,顾名思义,它是一个sed用 Perl 编写的程序(因此使用 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

于 2013-10-19T04:47:44.493 回答