我需要替换我的某个文件夹中的所有文件中的文本,并且使用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.
有人可以告诉我我应该做什么吗?我也尝试了其他几种方法,但似乎都没有工作......我真的需要通过命令行完成它,因为它有更快,因为有超过一千万行。谢谢!
答案 0 :(得分:10)
替换文本中的/ es被视为分界符,也是分区运算符。您可以在适当的情况下将slases转义为\ /,或使用备用分隔符。尝试:
perl -pi.bak -e 's#<START>#<url><loc>http://www.mysite.com/page/#g' *
答案 1 :(得分:4)
你需要逃避斜杠。
s/<START>/<url><loc>http:\/\/www.mysite.com\/page\//g