0

編集する必要がある 300 以上のファイルのリストがあるので、sed コマンドと find および exec を併用すると役立つと考えました。

何か間違ったことをする前に (変更しないファイルを上書きするなど)、ローカル置換ではなく sed を使用してその結果を bash に出力することにしました。

私が探している文字列は次のとおりです。<tr><td class="button" style=" background:#040404; color:#eee9dc; font-size: 23px; padding:5px 0; text-align:center;"><a href="../Z2/C24357-0/hhcm-LASTMINUTES.html" style=" text-decoration:none; cursor:pointer; color:#eee9dc">Offerte & LastMinute</a></td></tr>

その部分だけ<a href="../Z2/C24357-0/hhcm-LASTMINUTES.html<a href="../../../special_offers.php?lang=it"

私は について初心者なので、適切な方法で正規表現の議論に私を駆り立てるそのWeb ページregexを見てみましょう。

今、私はそのようなことを試しました(単一のファイルで、「安全な」方法で出力を確認するためだけに)

 sed s/\<a.*LAST.*html\"
      /\<a href="\.\.\/\.\.\/\.\.\/special_offers\.php\?lang=en"/ 
      C25030-9_3/hhcm-Solo_per_due.html

そして、そのエラーが発生します。式が正しくないsed: -e expression #1, char 20: unterminated s' command ようsedですが、エラーがパーツにあるのか、他の場所にあるのかわかりませreplacementん。

お時間と労力をいただきありがとうございます。

S.

編集

回答のおかげで、これを何かして解決しました

sed 's/<a.*LAST.*html\"/\<a href="..\/..\/..\/special_offers.php?lang=en"/' C25030-9_3/hhcm-Solo_per_due.html
4

1 に答える 1

1

最初に、sed 式全体 ( ) を単一引用符で囲む必要があるようです。2 番目に、最後にs/.../.../を忘れました(編集を参照)。3 番目に、パターン文字列全体が次の場合にのみ置換が機能することを忘れないでください。は1行にあります。/

編集:sコマンドの詳細 (たとえば、ここを参照):s/old/new/最後の/. あなたのコマンドは のように見えますがs/something/somethingelse/somethingelse、必要以上のものがあると思います。

于 2012-05-17T10:11:05.467 に答える