我有一个文件.tablecorner {
-moz-box-shadow: 0 0 15px 8px #000, inset 1px 1px 15px 5px rgba(0,0,0,0.75);
-webkit-box-shadow: 0 0 15px 8px#000, inset 1px 1px 15px 5px rgba(0,0,0,0.75);
box-shadow: 0 0 15px 8px #000, inset 1px 1px 15px 5px rgba(0,0,0,0.75);
}
,其中包含以下内容:
temp.txt
在上面的文件中,我想替换从" MANAGED BY DATABASE"开始的两个或n个文本。并以")"结束与CREATE TABLESPACE TSASNCA
IN NODEGROUP IBMCATGROUP
PAGESIZE 8192
MANAGED BY DATABASE
USING
(
FILE 'TSASNCA' 482M
)
EXTENTSIZE 8
BUFFERPOOL DPROPR8KBP;
CREATE TABLESPACE TSASNUOW
IN NODEGROUP IBMCATGROUP
PAGESIZE 8192
MANAGED BY DATABASE
USING
(
FILE 'TSASNUOW' 10M
)
EXTENTSIZE 8
BUFFERPOOL DPROPR8KBP;
。
我尝试了以下操作,它似乎很贪婪并且匹配从第一次出现MANAGED BY AUTOMATIC STORAGE
到最后一次出现MANAGED BY DATABASE
的所有内容:
)
不完全是我想要的。然后我试图消除贪婪,但仍然没有运气:
perl -0777 -pe 's/MANAGED BY DATABASE.*\)/MANAGED BY AUTOMATIC STORAGE/sg' temp.txt
CREATE TABLESPACE TSASNCA
IN NODEGROUP IBMCATGROUP
PAGESIZE 8192
MANAGED BY AUTOMATIC STORAGE
EXTENTSIZE 8
BUFFERPOOL DPROPR8KBP;
答案 0 :(得分:0)
我不确定我是否理解你的问题,但你可以使用这个正则表达式:
\*\*.*?\*\* with S flag (single line)
or
(?s)\*\*.*?\*\* with S inline flag
or
\*\*[\s\S]*?\*\* without S flag
<强> Working demo 强>
您的输出将是:
CREATE TABLESPACE TSASNCA
IN NODEGROUP IBMCATGROUP
PAGESIZE 8192
**MANAGED BY AUTOMATIC STORAGE**
EXTENTSIZE 8
BUFFERPOOL DPROPR8KBP;
CREATE TABLESPACE TSASNUOW
IN NODEGROUP IBMCATGROUP
PAGESIZE 8192
**MANAGED BY AUTOMATIC STORAGE**
EXTENTSIZE 8
BUFFERPOOL DPROPR8KBP;