すべてのファイル内の images\(.*)" を images/\1" に置き換えますか?

すべてのファイル内の images\(.*)" を images/\1" に置き換えますか?

たくさんの HTML ファイルがあるのですが、すべての img タグのスラッシュが間違った方向に入っています。

以下に例を示します (ただし、コード内の 1 行ですが、見やすいように分割されています)

<a href=index.html><img src="images\homereg.png" /></a>
<img src="images\spacer.png" />
<a href=dogs.html><img src="images\dogsreg.png" /></a>
<img src="images\spacer.png" />
<a href=litters.html><img src="images\littersreg.png" /></a>
<img src="images\spacer.png" />
<a href=bredby.html><img src="images\bredbyreg.png" /></a>
<img src="images\spacer.png" />
<a href=contact.html><img src="images\contactreg.png" /></a>

これまで試したことで問題になったのは、sed が貪欲なので、一致が多すぎて適切に置換されないことです。1sed -i 's|images\\\(.*\)\"|images/\1\"|g' *行につき 1 つ置換するようなものは、一致が多すぎます。他にもいくつか試しましたが、すべてこれと同じ傾向です。

最も簡単な解決策は何ですか? sed に限定されているわけではありませんが、sed を最もよく知っているので、それを試してみました。

答え1

これがあなたに当てはまるかどうか確認してください

sed "s/images\\\/images\\//g"

答え2

正規表現は使用しないでください。 のすべての出現を に置き換えるだけimages\ですimages/

すべての基本的なテキスト エディターはこれをサポートする必要があります。

使用したい場合sed

sed 's|images\\|images/|g' filename.html

関連情報