Suchen und ersetzen in HTML Dokumenten

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von JoeDormann, 21.11.2011.

  1. #1 JoeDormann, 21.11.2011
    Zuletzt bearbeitet: 22.11.2011
    JoeDormann

    JoeDormann Grünschnabel

    Dabei seit:
    19.11.2011
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo,

    ich habe schon viel gesucht hier, aber ich komme nicht weiter.
    Ich möchte in beliebigem html Inhalt einen Platzhalter §§§§§§§§ ersetzen durch einen anderen Text.

    Betreffender Ausschnitt ::

    Code:
    echo "start html"
    # lese liste von namen aus datei in variable v3 inhalt "huge ernst maria toto"
    read v3 < $thisdir/$filename.Live.Data.cut.sort.uniq
    dirgraph="/home/user1/www/@graph"
    #lese header
    read z1txt < $dirgraph/z1.txt
    #erzeuge  4 mal body part, ersetze und immer in die gleiche variable zurückspeichern
    for i3 in ${v3[@]}; do
        read z2Ltxt < $dirgraph/z2L.txt
        $z2Ltxt="$z2Ltxt"$(echo $z2Ltxt | sed -e -r '/§§§§§§§§/${i3}/')
    done
    #footer parts
    read z3txt < $dirgraph/z3.txt
    read z4txt < $dirgraph/z4.txt
    #zusammenbauen und ausgeben
    aus="$z1txt $z2Ltxt $z3txt $z4txt"
    echo "$aus" >> "$hisdir/indexL.html"
    echo "end html"
    
    Die Html-Texte wurden sauber eingelesen.
    Offensichtlich scheitert sed, da die zeichen < > der tags zur umleitung für einlesen und ausgabe benutzt werden.
    Der output in eine neue html Datei klappt so noch nicht.

    Vielleicht sind auch noch mehr fehlerhafte Sachen in dem Scriptpart.

    Ich würde mich über etwas Hilfe freuen.
    Gruß Joe
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    sed nimmt als Kommandozeilenargument die Datei, die editiert werden soll, versuch das ganze also erstmal ohne 'echo'. Wenn Du die Datei selber ersetzen moechtest, kannst Du bei GNU sed auch die Option -i verwenden, dann werden die Aenderungen direkt in die editierte Datei geschrieben.
    P.S.: Es gibt 'code'-Tags zum Posten, mit denen Dein Beitrag deutlich angenehmer zu lesen ist.
    Code:
     Text in Code-tags 
     
  4. #3 JoeDormann, 22.11.2011
    JoeDormann

    JoeDormann Grünschnabel

    Dabei seit:
    19.11.2011
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo,
    vielen Dank erstmal.
    Nur mal sicherheitshalber nachgefragt. Folgere ich richtig, das sed keine Ersetzungen in mittels einer Variable, in der sich der html-code befindet, machen kann?
    Welche Alternative gäbe es, um das Problem zu lösen, und dabei nicht das Filesystem zu bemühen?
    Ich habe sed erst benutzt, als ich zuvor mit awk auch nicht weitergekommen bin.

    Gruß Joe
     
  5. #4 floyd62, 22.11.2011
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Hi,

    auf den ersten Blick sieht das für mich so aus, als ob dein Skript laufen könnte, wenn du nur die einfachen Quotes (') durch doppelte (") ersetzt; die Shell interpretiert innerhalb der Single Quotes keine Variablen, die '<' und '>'-Zeichen haben damit nichts zu tun.

    Hat das eigentlich einen besonderen Grund, dass du die ganzen Teile erst in Variablen zwischenspeicherst anstatt sie direkt auszugeben?

    Eigentlich sollte das Ganze auch so in etwa schon funktionieren:

    Code:
    dirgraph="/home/user1/www/@graph"
    (
        cat $dirgraph/z1.txt
        for i3 in $(<$thisdir/$filename.Live.Data.cut.sort.uniq); do
            sed -e "/§§§§§§§§/$i3/") < $dirgraph/z2L.txt
        done
        cat $dirgraph/z3.txt
        cat $dirgraph/z4.txt
    ) >> "$hisdir/indexL.html"
    
    (Hoffe, die Verwendung von unterschiedlichen Variablen - einmal $thisdir und danach dann $hisdir - ist so gewollt ...)

    Gruss,
    A.
     
  6. #5 JoeDormann, 23.11.2011
    Zuletzt bearbeitet: 24.11.2011
    JoeDormann

    JoeDormann Grünschnabel

    Dabei seit:
    19.11.2011
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo und Dank,

    ja es funktioniert super,
    nachdem ich noch eine Stunde gesucht habe und darauf kam, das ein "s" fehlte und die Klammer ) weg war.

    sed -e "s/§§§§§§§§/$i3/" < $dirgraph/z2L.txt

    So gings dann.
    
    Danke nochmal,
    Joe

    Thema kann geschlossen werden.
     
Thema:

Suchen und ersetzen in HTML Dokumenten

Die Seite wird geladen...

Suchen und ersetzen in HTML Dokumenten - Ähnliche Themen

  1. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  2. sed suchen und ersetzen mit Variable übergeben?

    sed suchen und ersetzen mit Variable übergeben?: hallo, ich habe folgenden sed-Befehl, der schon super ist und auch alles tut, was er tun soll, nur eben natürlich das $i einfach hinschreibt...
  3. Zeilenweise suchen, löschen und ersetzen / Inhalt einfügen

    Zeilenweise suchen, löschen und ersetzen / Inhalt einfügen: Hallo liebe Community. Habe ein kleines Problem und bin leider nicht so der Linux-Freak... Ich hoffe mal ihr könnt mir da vielleicht ein wenig...
  4. Bash-Skript Text suchen und ersetzen mit unterschiedlichen Trennzeichen

    Bash-Skript Text suchen und ersetzen mit unterschiedlichen Trennzeichen: Hallo zusammen, ich habe bereits diverse Google-Suchergebnisse durchforstet, habe jedoch nirgendwo eine verwertbare Lösung für mein Anliegen...
  5. Maskiertes Suchen, Ersetzen und Rechnen in access.log vor weitere Bearbeitung

    Maskiertes Suchen, Ersetzen und Rechnen in access.log vor weitere Bearbeitung: Hallo, vielen Dank nochmal für die konstruktive Hilfe in meiner letzten Anfrage. Aktuell zu meinem kleinen Auswertungsprojekt habe ich eine...