Jens Herbach: Quelltext automatisch ändern

Bin bei der Homepage-Bastelei über ein Problem gestolpert. Ich möchte im HTML-Quelltext ein title-Attribut zwischen zwei Tags verschieben: Aus <a href=...><img src=... title="XYZ"></a> soll <a href=... title="XYZ"><img src=...></a> werden. Das XYZ steht dabei für eine beliebige, veränderliche Zeichenfolge.
Da der Ausdruck in verschiedenen Dateien insgesamt fast 6000 mal zu bearbeiten ist, soll dies automatisch im Quelltext durch ein Script, Programm o.ä. erfolgen. Die Suchen/Ersetzen-Funktion von GoLive stößt hier leider an ihre Grenzen. Gibt es eine Lösung für das Problem?

  1. Da der Ausdruck in verschiedenen Dateien insgesamt fast 6000 mal zu bearbeiten ist, soll dies automatisch im Quelltext durch ein Script, Programm o.ä. erfolgen.

    sed, namentlich dessen Funktion "s/regexp/replacement/".

  2. Hallo Jens

    Da der Ausdruck in verschiedenen Dateien insgesamt fast 6000 mal zu bearbeiten ist, soll dies automatisch im Quelltext durch ein Script, Programm o.ä. erfolgen. Die Suchen/Ersetzen-Funktion von GoLive stößt hier leider an ihre Grenzen. Gibt es eine Lösung für das Problem?

    Das dateiübergreifende Suchen & Ersetzen von Weaverslave dürfte mit einem passenden Regulären Ausdruck damit keine Probleme haben. (Damit habe ich unter anderem bei allen Browsericons in SELFHTML nachträglich die title-Attribute eingefügt.)

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
  3. Vielen Dank für die hilfreichen Tipps, besonders an Detlef!
    Mit Weaverslave und ein bisschen Internetrecherche (reguläre Ausdrücke können verdammt kompliziert sein) hat es dann geklappt. Wer ein ähnliches Problem hat - hier eine mögliche Lösung:

    Aus <a href=xyz.jpg><img class=x src=zyx.jpg title="beliebig"></a> soll werden <a href=xyz.jpg title="beliebig"><img class=x src=zyx.jpg></a>

    Der Suchstring dazu lautet:
    (<a href=[^>]*)(><img class=\w src=[^>]*)( title=[^>]*)(></a>)
    Ersetzt wird ganz einfach durch:
    $1$3$2$4

    Wie gesagt, obiges Beispiel ist für Weaverslave.

    Nochmals Danke und viele Grüße
    Jens