寻找一种方法,如何在PHP评论中替换任何地方的URL,例如:
/*
some text
case1: http://some/url
maybe some text
*/
或
// handle this: https://another/url/
基本理念是
#find all occurrences and output with the file:linenumber:content
find . -name \*.php -print | xargs grep -nP 'REGEX' | while read line
do
file=$( echo "$line" | sed 's/\([^:]*\):\([^:]*\):.*/\1/')
linenum=$(echo "$line" | sed 's/\([^:]*\):\([^:]*\):.*/\2/')
sed -i '.bak' "${linenum}s!http://[^ ]*!http://example.com!" $file #edit the line
done
我遇到REGEX
的问题,有可能在perl风格的正则表达式的php评论中找到http(s?)
吗?
可能需要运行脚本4x for found并替换" http和https"的所有4种组合。使用"多行评论和"单行评论" ...
文件路径和文件名100%不包含空格或换行符,因此不需要在bash中处理这些特殊情况。
我也开放perl
解决方案:) :),类似于:
use strict;
use warnings;
use Path::Class;
for my $fname (@ARGV) {
my $content = file($fname)->slurp;
$content =~ s!.....WHAT...!http://example.com!gs;
file($fname . '.new')->spew($content);
}