添加一個新的指令,對於希望像這樣的模式:的Perl:在Apache虛擬主機文件
<VirtualHost 127.0.0.1:81>
Directive1
Directive2
</VirtualHost>
我想</VirtualHost>
前插入新行字符串Directive3
。請注意,它們可以是文件中的幾個<VirtualHost/>
聲明,但它們都具有唯一的IP:PORT對。這是我到目前爲止有:
perl -p -i -e 's/(<VirtualHost 127\.0\.1\.1:81>[^(<\/VirtualHost>)+])(<\/VirtualHost>)/$1\n\tDirective3\n$2/ims' $file
哪個細分得出:
- 有
<VirtualHost 127.0.0.1:81>
- 其次是
- 具有除
</VirtualHost>
- 一切其次是
</VirtualHost>
但這並不符合任何要求:(...
任何idead?
'[^(<\ /虛擬主機>)+]'並不意味着'擁有一切,除了虛擬主機>' – Toto 2012-03-14 10:10:50
應該加號是後右括號]? – francoisrv 2012-03-14 10:12:40
改爲使用'。+?'。 – Toto 2012-03-14 10:19:35