#!/bin/bash
perl -p -i -e "s/eregi_replace *\\(*\"([^\@]+?)(?<\!\\\\)\", */preg_replace(\"\@\\1\@i\", /g" $1
perl -p -i -e "s/eregi_replace *\\(*\'([^\@]+?)(?<\!\\\\)\', */preg_replace(\'\@\\1\@i\', /g" $1
perl -p -i -e "s/ereg_replace *\\(*\"([^\@]+?)(?<\!\\\\)\", */preg_replace(\"\@\\1\@\", /g" $1
perl -p -i -e "s/ereg_replace *\\(*\'([^\@]+?)(?<\!\\\\)\', */preg_replace(\'\@\\1\@\', /g" $1
perl -p -i -e "s/eregi *\\(*\"([^\@]+?)(?<\!\\\\)\", */preg_match(\"\@\\1\@i\", /g" $1
perl -p -i -e "s/eregi *\\(*\'([^\@]+?)(?<\!\\\\)\', */preg_match(\'\@\\1\@i\', /g" $1
perl -p -i -e "s/ereg *\\(*\"([^\@]+?)(?<\!\\\\)\", */preg_match(\"\@\\1\@\", /g" $1
perl -p -i -e "s/ereg *\\(*\'([^\@]+?)(?<\!\\\\)\', */preg_match(\'\@\\1\@\', /g" $1
下面是我用一个小的bash脚本。比我更多时间的人可能会把所有这些都压缩成更少的(1?)正则表达式,但它应该做到这一点。随意用您的分隔符替换@
。只需将它粘贴到一个文件中,chmod +x
它,然后调用它,将该文件作为参数传递。
如果需要使用集体,这样的事情应该足够了:
find /path/to/your/project -name '*.php' -exec foo {} \;
哪里foo
是您命名的bash脚本。
注:这并不完美,所以您仍然需要手动更改任何错过的边缘情况,但它仍然可以为您节省大量工作。另请注意,这可以进行就地文件编辑。
这些文件的操作系统是什么? –
@JonathanM:CentOS – Tech4Wilco
@JasonMcCreary是的,这就是为什么我问这个问题==> **将ereg更新为preg_match ** – Tech4Wilco