1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Text zwischen zwei Tags extrahieren

    • Frage
  • andras98
  • 17. April 2012 um 23:01
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • andras98
    Punkte
    911
    Beiträge
    137
    • 17. April 2012 um 23:01
    • #1

    Hi!
    Ich habe ein riesiges Textfile in dem viele Daten stehen. Manche haben zwei Tags (TagA, TagB) die sie begrenzen. Ich bräuchte eine Idee wie ich die Inhalte zwischen den Tags am besten extrahiere und in eine Datei schreibe.
    Ich wollte sie mit grep bekommen was aber scheiterte da die Daten innerhalb der Tags auf übere mehrere Zeilen gehen können.

    Code
    Blablabla Blablabla Blablabla, Blablabla - öööö Blablabla TagA Dieser Text ist 
    wichtig und kann über mehrere Zeilen gehen ... TagB Blablabla Blablabla
    Blablabla
    BlablablaBlablabla Blablabla Blablabla, Blablabla - öööö Blablabla TagA Auch dieser Text ist 
    wichtig und kann über mehrere Zeilen gehen ... TagB Blablabla Blablabla
    Blablabla
    Blablabla

    Output sollte dann sein:

    Code
    Dieser Text ist wichtig und kann über mehrere Zeilen gehen
    Auch dieser Text ist wichtig und kann über mehrere Zeilen gehen

    Ideen?
    danke!

  • sutupud
    Punkte
    1.659
    Beiträge
    320
    • 18. April 2012 um 00:33
    • #2

    na ja, grep arbeitet normalerweise zeile für zeile...
    mit "-z" kannst du es aber dazu zu bringen, das zu umgehen
    und im multiline-modus arbeitet man am besten mit pcre
    --> man pcrematching

    Code
    grep -Pzo '(?sm)(?<=TagA).*?(?=TagB)'

    damit sollte es eigentlich gehen...

    du brauchst hier den PCRE_DOTALL und den PCRE_MULTILINE modus - (?sm)
    die tags sollen ja nicht mit gecaptured werden, deshalb brauchst du hier lookbehind bzw. lookahad - (?<=...) (?=...)

  • andras98
    Punkte
    911
    Beiträge
    137
    • 5. Mai 2012 um 20:37
    • #3

    hmm die xml wenn du diese von Word erstellst hat keine Zeilenumbrüche mehr ...
    Dachte es gäbe eine Word Funktion die man dafür verwenden kann? ;)

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum