Anzeige:
Ergebnis 1 bis 6 von 6

Thema: sed befehl - wenn laien programmieren wollen ...

  1. #1
    Registrierter Benutzer
    Registriert seit
    Sep 2014
    Beiträge
    4

    sed befehl - wenn laien programmieren wollen ...

    hallo,
    ich möchchte gerne mit dem sed-befehl in textfiles ganze blöcke ändern. bzw. löschen. konkret geht es darum, die <html> sektion in einem html-file zu löschen, also <html> ... bis .... </html>.
    das funktioniert aber nicht, da ich nicht weiss, wie CR-LF in der sed-anweisung eingetragen wird:

    sed s/<html> .* ??? <\/html>//g

    was muss statt ??? stehen?

    das ganze soll als befehlszeile in ein batchfile eingetragen werden.

    vielen dank im voraus
    andreas

  2. #2
    Registrierter Benutzer Avatar von buzz768
    Registriert seit
    Apr 2005
    Ort
    Rostock
    Beiträge
    2.016
    sed arbeitet zeilenweise, deshalb funktioniert "suchen und ersetzen" erst einmal nicht über mehrere Zeilen hinweg. Aber du kannst sed vor dem eigentlichen Befehl mitteilen, auf welche Zeilen er diesen anwenden soll:

    [ADR1 [,ADR2] [!] CMD [ARG]

    Soll heißen: In ADR1 oder von ADR1 bis ADR2 bzw. in allen anderen Zeilen (!) führe CMD aus. Du hast keine Adressen angegeben, sed soll also in jeder Zeile das Kommando s/<html> .* ??? <\/html>//g ausführen, das kann also nicht funktionieren. Also: Befehl löschen (d) anwenden von Zeile, die <html> enthält, bis Zeile, die </html> enthält:

    sed '/<html>/,/<\/html>/d'
    Geändert von buzz768 (20.09.14 um 16:16 Uhr)
    Arch Linux / Intel Z77 / i5-3570K / 8GB PC3-1333 / SAMSUNG SSD 830 128GB

  3. #3
    Registrierter Benutzer
    Registriert seit
    Sep 2014
    Beiträge
    4
    Das Problem ist, dass ich im Vorhinein nicht weiss, in welchen Zeilen das CR gelöscht werden soll.

    In einem anderen Posting hab ich aber ein ähnliches Prroblem gesehen, und die Lösung dazu war:

    tr "\xOA" "" < infile > outfile

    Das würde mir auch schon helfen nur: das funktioniert nicht. Mit x0* kann ich jedes beliebige Zeichen ändern/löschen; nur x0A nicht! x0D funktiniert auch, doch das alle ist zu wenig.

    LG, Andreas

  4. #4
    Codefuzzy Avatar von Efraim
    Registriert seit
    Jun 2010
    Beiträge
    445
    Zitat Zitat von standard411 Beitrag anzeigen
    In einem anderen Posting hab ich aber ein ähnliches Prroblem gesehen, und die Lösung dazu war:

    tr "\xOA" "" < infile > outfile

    Das würde mir auch schon helfen nur: das funktioniert nicht.
    Natürlich funktioniert ein O nicht, wo eine Null hin gehört.


    Code:
    tr -d '\n' < infile > outfile
    sollte alle LFs entfernen.

    Aus Erfahrung kann ich Dir aber schreiben, dass das parsen von HTML-Code mit einem einfachen Textfilter wie sed, nicht das gelbe vom Ei ist.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Sep 2014
    Beiträge
    4
    danke,
    das "xOA" ist mir nur beim posten passiert.
    Warum es mit 0A nicht funktioniert hat, hab ich rausgefunden: die umbrüche waren offenbar "dos"-umbrüche, mit cat -e als ^M erkennbar. und dae schein sed zu ignorieren.

    das mit dem tr -d '\n' < infile > outfile war ein guiter tip. danke.
    grüße, andreas

  6. #6
    Codefuzzy Avatar von Efraim
    Registriert seit
    Jun 2010
    Beiträge
    445
    Dos hat zwei Zeichen als Zeilenende: CR (\r) und LF (\n).
    Code:
    tr -d '\r' < infile > outfile
    entfernt die überflüssigen "Returns".

Ähnliche Themen

  1. Programmieren mit C/C++
    Von The_Punisher im Forum Anwendungen Allgemein, Software
    Antworten: 30
    Letzter Beitrag: 03.10.08, 19:56
  2. Befehl automatisch ausführen, wenn ein anderer endet
    Von bitpicker im Forum Linux Allgemein
    Antworten: 5
    Letzter Beitrag: 01.06.06, 08:28
  3. Wine unter Linux installieren (Laien Anleitung)
    Von Max1993 im Forum Emulatoren für Spiele
    Antworten: 2
    Letzter Beitrag: 07.05.06, 19:25
  4. FileServer mit Softraid5 für Laien
    Von SnaG im Forum Linux als Server
    Antworten: 10
    Letzter Beitrag: 08.06.05, 09:32
  5. Kann man den strip Befehl gefahrlos auf Dateien anwenden? Strip Befehl -> Vorteile?
    Von Catonga im Forum System installieren und konfigurieren
    Antworten: 1
    Letzter Beitrag: 24.02.02, 05:10

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •