查找并替换PHP注释中的URL

时间:2014-03-23 16:46:31

标签: perl bash grep

寻找一种方法,如何在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);
}

0 个答案:

没有答案