1

这段代码工作了几个星期,现在返回一个错误。关于发生了什么的任何建议?似乎我正在解析的网站做了一些细微的更改,导致我的解析器窒息...


想象一下文件中的以下字符串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

旁注:在 Ubuntu 12.10 上运行 sed 4.2.1 Dec. 2010。

4

1 回答 1

3

这适用于 GNU ,尝试s用另一个字符替换 sed 命令中的斜杠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不需要。


您不应该使用正则表达式处理和类似的文件格式。使用工具。

于 2013-07-14T15:00:37.427 回答