使用命令行替换文件夹中所有文件中的文本?

use*_*462 4 perl command-line

我需要替换我的一个文件夹中的所有文件中的文本并使用Perl但是收到错误.

这就是我正在运行的:

perl -pi.bak -e 's/<START>/<url><loc>http://www.mysite.com/page//g' *
Run Code Online (Sandbox Code Playgroud)

基本上我只需要更换

<START>
Run Code Online (Sandbox Code Playgroud)

有了这个:

<url><loc>http://www.mysite.com/page/
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Illegal division by zero at -e line 1, <> line 1.
Run Code Online (Sandbox Code Playgroud)

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

Alw*_*yin 10

替换文本中的/ es作为分隔符被轮换,也作为分区运算符.您可以在适当的情况下将slases转义为\ /,或使用备用分隔符.尝试:

perl -pi.bak -e 's#<START>#<url><loc>http://www.mysite.com/page/#g' *
Run Code Online (Sandbox Code Playgroud)