Ersetzt images\(.*)" durch images/\1" in allen Dateien?

Ersetzt images\(.*)" durch images/\1" in allen Dateien?

Ich habe einen Haufen HTML-Dateien und bei allen IMG-Tags sind die Schrägstriche falsch herum!

Hier ist ein Beispiel (außer, dass es sich um eine einzige Codezeile handelt, die hier zur besseren Übersichtlichkeit aufgeteilt ist)

<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>

Mein Problem mit dem, was ich bisher versucht habe, ist, dass sed gierig ist, also zu viel abgleicht und nicht richtig ersetzt. Etwas wie „ sed -i 's|images\\\(.*\)\"|images/\1\"|g' *ersetzt einen pro Zeile“, es stimmt zu viel ab. Ich habe noch ein paar andere Dinge ausprobiert, aber alle laufen auf die gleiche Linie wie das hier.

Was ist die einfachste Lösung? Ich bin nicht auf sed beschränkt, ich kenne es einfach am besten, also habe ich es versucht.

Antwort1

Prüfen Sie, ob das für Sie funktioniert

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

Antwort2

Verwenden Sie keine regulären Ausdrücke. Ersetzen Sie einfach alle Vorkommen von images\durch images/.

Alle grundlegenden Texteditoren sollten dies unterstützen.

Wenn Sie Folgendes verwenden möchten sed:

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

verwandte Informationen