4

我需要替换我的一个文件夹中所有文件中的文本,并且正在使用 Perl 但出现错误。

这就是我正在运行的:

perl -pi.bak -e 's/<START>/<url><loc>http://www.mysite.com/page//g' *

基本上我只需要更换

<START>

有了这个:

<url><loc>http://www.mysite.com/page/

这是我得到的错误:

Illegal division by zero at -e line 1, <> line 1.

有人能告诉我我应该做什么吗?我也尝试了其他几种方法,但似乎都没有工作......我真的需要通过命令行来完成它,因为它有超过一千万行,所以它更快。谢谢!

4

2 回答 2

10

替换文本中的 /es 被视为分隔符,也被视为除法运算符。您可以在适当的情况下将斜线转义为 \/,或使用备用分隔符。尝试:

perl -pi.bak -e 's#<START>#<url><loc>http://www.mysite.com/page/#g' *
于 2012-11-01T23:18:59.250 回答
4

你需要逃避斜线。 s/<START>/<url><loc>http:\/\/www.mysite.com\/page\//g

于 2012-11-01T23:19:10.450 回答