PHP脚本中的SED命令(错误表达式#1,char 34:前面的正则表达式无效)

时间:2013-07-14 09:10:42

标签: php regex ubuntu sed

此代码工作了几周,现在又返回错误。关于什么是migth发生的任何建议?我正在解析的网站似乎做了一些小改动,导致我的解析器窒息...


想象一下文件test.html中的跟随字符串(没有点)

... </script> <script type="text/javascript" src=" ...

所需的字符串转换

Replace <script type="text/javascript" with <tagkilled

使用以下 php代码

    $file = "test.html";

    // Destroy javascript codetag
    $command='/bin/sed -ri \'s/<script type="text\/javascript"/<tagkilled/g\' '.str_replace(' ','\ ',$file);
    exec($command);

返回错误消息

/bin/sed: -e expression #1, char 34: Invalid preceding regular expression

旁注:运行sed 4.2.1    2010年12月在Ubuntu 12.10上。

1 个答案:

答案 0 :(得分:3)

这适用于GNU ,尝试将sed的s命令中的斜杠替换为另一个字符:s#search#replace#[flags]

$ cat file
</script> <script type="text/javascript" src="

$ sed 's#<script type="text/javascript"#<tagkilled#g' file
</script> <tagkilled src="


这里不需要g


您不应该使用Regex处理和类似的文件格式。使用工具。