Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Bamboo156, 13.09.2013.

  1. #1 Bamboo156, 13.09.2013
    Zuletzt bearbeitet: 13.09.2013
    Bamboo156

    Bamboo156 Grünschnabel

    Dabei seit:
    13.09.2013
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo zusammen.

    Ich habe folgendes Anliegen:
    Ich habe eine HTML Datei mit entsprechenden Tags usw. . Diese möchte ich in eine normale Textdatei mittels sed konvertieren und dabei diverse Aufgaben erledigen. Der Text zwischen den Tags <hx> und </hx> soll in Großbuchstaben mit einem Leerzeichen zwischen den Buchstaben, drei Leerzeichen zwischen den Worten und abschließend noch die Tags entfernt werden.

    Ich lerne gerade Linux/sed/Terminal kennen und hänge hier an vielleicht trivialen Dingen.

    Ich war natürlich nicht ganz untätig und habe gerade folgende Dinge bereits gemacht.

    s!\<h1\>.*\<h1\>!\U&!g; #für die Großbuchstaben
    s!.!& !g; #Leerzeichen, aber nach JEDEM Zeichen. Nicht nur innerhalb der Tags.
    s!<[^>]*>!!g; #alle Tags entfernen

    Dazu habe ich noch alle HTML Umlaute in "normale" Umlaute geändert und die prinzipielle Ausgabe in .txt klappt auch. Ich schreibe das alles in einem sed-Skript mittels gedit bzw vim.

    Ich wäre euch dankbar für Tipps und Hilfe.
     
  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. #2 fresh$free, 04.10.2013
    fresh$free

    fresh$free Jungspund

    Dabei seit:
    03.10.2013
    Beiträge:
    22
    Zustimmungen:
    0
    Mal auf die Schnelle, vielleicht hilft es ja:

    Code:
    #!/bin/bash
    html='aaa <H1>bla blub blob</H1> bbb'
    #echo "vorher: $html"
    # Header finden und extrahieren, in Grossbuchstaben wandeln
    
    #was vor dem h1 steht merken
    preheader=$(echo $html|sed -r 's:(.*)(<H[0-9]>.*</H[0-9]>)(.*):\1:')
    echo "Preheader:"
    echo "$preheader"
    
    #was nach dem h1 steht merken
    postheader=$(echo $html|sed -r 's:(.*)(<H[0-9]>.*</H[0-9]>)(.*):\3:')
    echo "Postheader"
    echo "$postheader"
    
    # header part suchen
    html=$(echo $html|sed -r 's:(.*)(<H[0-9]>)(.*)(</H[0-9]>)(.*):\U\3:')
    echo $html
    
    
    # header umbauen....
    #   Tags entfernen
    html=$(echo $html|sed -r 's:<[^>]*>::g')
    echo "evt tags im header entfernen:"
    echo "$html"
    
    #    1 LZ -> 3 LZ
    html=$(echo $html|sed -r 's/ /   /g')
    echo "ein <space> wird zu 3 <space>:"
    echo "$html"
    
    # 1 LZ zwischen jeden Buchstaben
    html=$(echo $html|sed -r 's:[^^][a-z]*:& :g')
    echo "<space> zw. jedem Buchst einfügen:"
    echo "$html"
    echo ""
    echo "jetzt wieder komplett:"
    echo "$preheader $html $postheader"
    
     
  4. #3 Bamboo156, 11.10.2013
    Bamboo156

    Bamboo156 Grünschnabel

    Dabei seit:
    13.09.2013
    Beiträge:
    2
    Zustimmungen:
    0
    Hey, danke fuer die Antwort. Das hat mir serh weitergeholfen. :)
     
Thema:

Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED

Die Seite wird geladen...

Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED - Ähnliche Themen

  1. Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...

    Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...: Ich habe eine Textdatei in der ich Einträge bis zum 3. Leerzeichen mit den restlichen Zeilen (auch nur bis 3. Leerzeichen) vergleichen muss und...
  2. Textdatei / AWK / Leerzeichen - Problem

    Textdatei / AWK / Leerzeichen - Problem: Hi liebes Forum, vielleicht könnt ihr mir bei einer kleinen Shell-Geschichte helfen, da ich kein Programmierer bin, und auf der Shell noch recht...
  3. Problem mit Leerzeichen im Namen

    Problem mit Leerzeichen im Namen: Guten Morgen. Ich habe hier ein kleines Problem mit Leerzeichen. Ich habe dieses Script hier welches Folder mit *.app die kein Leerzeichen im...
  4. Wie finde ich Leerzeichen im dateinamen

    Wie finde ich Leerzeichen im dateinamen: Hallo, ich habe ein script mit einer Schleife über alle Dateien in einem Verzeichnis. #!/bin/sh for i in `ls *` do echo $i...
  5. Script Zeilenumbruch -> Leerzeichen

    Script Zeilenumbruch -> Leerzeichen: Wie muß folgendes Script für die Bash aussehen: Ich habe eine Textdatei mit einer Liste von (distributionseigenen)-Programmen, die ich...