4

フォルダーの 1 つにあるすべてのファイルのテキストを置き換える必要があり、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.

誰かが私が何をすべきか教えてもらえますか? 他にもいくつかの方法を試しましたが、どれも機能していないようです... 1,000万行を超えるため、コマンドラインを介して実行する必要があります。ありがとう!

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 に答える