简体   繁体   中英

unix search/replace with wildcard

I'm not very good at scripting, nor am I very good at regex, so I'm not sure how to accomplish this.

what I'd like to do is run a unix command that will search within current (and sub-) directories for a particular pattern match, and replace it with another string/pattern.

Lots of articles on this, but my 'twist' is that the match must have a wildcard - which will be reproduced in the replacement string.

I'm resorting to this method as I don't think I can get this specific with Eclipse (for PHP). If this CAN be done with Eclipse, please let me know.

For instance, here is the pattern I'm looking for: ::$_<sometext> and I wish to replace it with ::myFunction('<sometext>') .

Here is an example: echo UserClass::$_thevariable; turns into: echo UserClass::getVar('thevariable'); .

Thanks for your help

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

但是请注意sed -i ,它会替换文件到位...这也适用于指定的搜索/替换字符串,如果您需要转义,它可能会变得更加复杂

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM