使用shell命令更改PHP标记
我的问题是:使用shell命令更改PHP标记,php,sed,gnu-findutils,Php,Sed,Gnu Findutils,我的问题是: 我尝试更改所有标记(您可以使用以下sed命令: find -type f -name "*.php" -exec sed -i ':a;N;$!ba;s/<?\([ \n]\|echo\)/<?php \1/g' {} \; find-typef-name“*.php”-exec sed-i:a;N;$!ba;s/您可以随时使用php执行以下操作: #!/usr/bin/php <?php foreach (glob("./*.php") as $fn) {
我尝试更改所有标记(
您可以使用以下sed命令:
find -type f -name "*.php" -exec sed -i ':a;N;$!ba;s/<?\([ \n]\|echo\)/<?php \1/g' {} \;
find-typef-name“*.php”-exec sed-i:a;N;$!ba;s/您可以随时使用php执行以下操作:
#!/usr/bin/php
<?php
foreach (glob("./*.php") as $fn) {
$data = file_get_contents($fn);
$data = preg_replace("/<\?php/", "<?", $data);
$data = preg_replace("/<\?[\b\n\s]*/", "<?php ", $data);
file_put_contents("./$fn", $data);
}
!/usr/bin/php
@André首先,我也要回答这个问题。但后来我想可能会有一些模板,以*.php
结尾,有一些类似于@hek2mgl的东西,这是作者的问题,我想他可能会快速查看哪些文件被修改,看看其中是否有这样的语法,但由于他没有提到这方面的任何内容,我想他可能会快速查看一下发布了。无论如何,你发布了一个更好的答案。:@André如果你添加了这个代码,如果被替换了,但是如果你已经有了一个标签@user3680708很好的观点,完全没有想到。这很好用,但不理解它的语法,非常感谢!这是一个有点高级的sed用法。基本上,我使用两行的行缓冲区来替换仍然有效的find类型f-name“*php。”-Exec sed-I的/find-名称“*.php”-输入f-print0 | xargs-0sed-i-e的php/Thank技巧我不喜欢做这种事情,但谢谢你的朋友!
#!/usr/bin/php
<?php
foreach (glob("./*.php") as $fn) {
$data = file_get_contents($fn);
$data = preg_replace("/<\?php/", "<?", $data);
$data = preg_replace("/<\?[\b\n\s]*/", "<?php ", $data);
file_put_contents("./$fn", $data);
}