• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Grep bis zu einem bestimmten String

Leviathan

Hacker
Hi,

ich suche ein Kommando mit dem ich mir Textzeilen ausgeben lassen kann _bis_ zu einem bestimmten String.
Beispiel:

Text:
<pre>
Description :
"Yelp" is the help browser for the GNOME 2.x Desktop. It features man,
info, and docbook document sources.
Distribution: SUSE LINUX 10.1 (i586)
</pre>

Befehl, gib mir alle Textzeilen nach "Description:" bis "Distribution:" vorkommt.

Jemand eine Idee? Besten dank im Voraus.

Gruß Dominik
 

pft

Advanced Hacker
zum Beispiel mit (g)awk, mit einem Skript in der Art wie das hier (nicht unbedingt syntaktisch korrekt)
Code:
BEGIN {flag=0}
/Description/  { flag=1 }
/Distribution/ {flag=0}
{ if flag then print}

Du müßtest Dir noch Fragen beantworten wie:
tauchen die begriffe Description und Distribution auf sonst im text auf? Was dann
Stehen sie in den relevanten Fällen immer am Zeilenanfang?
Tauchen sie immer als Paar auf oder gibt es Fälle in denen ein Begriff da ist und der andere fhehlt?
 
OP
L

Leviathan

Hacker
Klasse, klappt wunderbar.

Habe es jetzt so.
BEGIN {flag=0}
/^Description/ { flag=1 }
/^Distribution/ {flag=0}
{ if (flag) print}

Dank dir für die gute Antwort. Gruß Dominik
 
Oben