unix搜索/替换为通配符

时间:2016-01-30 20:08:18

标签: php regex eclipse unix

我不擅长编写脚本,也不擅长正则表达式,因此我不确定如何实现这一目标。

我想要做的是运行一个unix命令,该命令将在当前(和子)目录中搜索特定模式匹配,并将其替换为另一个字符串/模式。

关于这一点的很多文章,但我的'扭曲''是匹配必须有一个通配符 - 将在替换字符串中重现。

我采用这种方法,因为我不认为我可以通过Eclipse(PHP)来实现这一点。如果可以使用Eclipse完成,请告诉我。

例如,以下是我正在寻找的模式:::$_<sometext>,我希望将其替换为::myFunction('<sometext>')

这是一个例子: echo UserClass::$_thevariable; 变成: echo UserClass::getVar('thevariable');

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

find . -exec sed -i -E -e "s/::[$]_([a-zA-Z]+)/::getVar('\1')/g" {} \;

但要注意sed -i,它会替换文件到位...这也适用于指定的搜索/替换字符串,如果你需要逃避事情,它可能会更加复杂