【发布时间】:2013-08-24 02:20:07
【问题描述】:
我正在寻找一个在 bash 文件 (*.sh) 中使用 perl 的正则表达式。 我需要在两个模式之间找到一个动态模式。
例如:
some data
.
.
.
Pattern1
.. data
Dynamic_Pattern
...data
Pattern2
.
.
data
.
.
Pattern1
..data
Pattern2
输出将是:
Pattern1
.. data
dynamic pattern
...data
Pattern2
我在网上找到了这段代码:
perl -n0e 'while (/Pattern1.*?((?=Pattern2)|(?=$))/sg) {$x=$&;print $x if $x=~/$Dynamic_Pattern/}' file
问题是,如果 Dynamic_Pattern id 是动态的,它就不起作用,只有当它是静态的时候才起作用
【问题讨论】:
-
$Dynamic_Pattern来自调用 bash-script? -
是的,perl 脚本位于一个 bash 函数中,该函数初始化 Dynamic_Pattern
perl -n0e 'while (/Pattern1.*?((?=Pattern2)|(?=$))/sg) {$x=$&;print $x if $x=~/$Dynamic_Pattern/}' file