ubuntuusers.de

Teiltext extrahieren

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Born4Destruction

Anmeldungsdatum:
19. Juni 2009

Beiträge: 22

Hi!

Bisher habe ich noch keinen adäquaten Lösungsansatz finden können, daher nun hier einmal meine Frage:

Wie kann ich einen Teiltext aus einem Inputstream (Pipe oder File) herausfiltern. Dieser erstreckt sich also über mehrere Zeilen und ich kenne das erste Wort, sowie das Schlußzeichen. Ich dache an eine Lösung, die reguläre Ausdrücke nutzt, jedoch arbeiten sed und grep vermutlich nur zeilenweise.

Kennt hier jemand vielleicht eine Kommandolösung, damit ich mir das Bauen eines dickes Skriptes erspart bleiben kann? 😬

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Vielleicht verrätst Du mal etwas genauer, wie der Text und das gesuchte Muster aussehen ?

Denn je nach dem, könnte man ja vielleicht Dein "Schlusszeichen" als Zeilentrenner deklarieren. Das ist aber nur sinnvoll, wenn es sonst nicht weiter vorkommt. Oder man kann einen sed- Adressbereich benutzen. Je nach dem ...

Darum: verrat uns mal etwas mehr.

LG,

track

riffraff

Avatar von riffraff

Anmeldungsdatum:
1. Oktober 2006

Beiträge: 486

Wohnort: Im kühlen Norden

Evtl. reicht ja hier ein einfaches

1
awk '/Anfang/,/Ende/' Input.txt

wenn man ein Input-Stream hat (durch echo oder cat z.B.) funktioniert das hinter einer Pipe ja auch 😉

1
cat input.txt | awk '/Anfangswort/,/Endwort/'

... mal so in den Raum geworfen.

theinlein

Anmeldungsdatum:
29. Dezember 2007

Beiträge: 1279

... ach, ich sehe gerade ...

Das cat braucht man nicht und es wäre zu betonen, dass es nicht ein Wort sein muss, es sind generell reguläre Ausdrücke möglich und verarbeiten kann man das auch noch

awk '/regExprOfBegin/,/regExprOfEnd/   { ... Verarbeitungscode ... }'  zuDurchsuchendeDatei
Antworten |