[Bash] Datei auslesen von xyz bis xyz (gelöst)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
ckoepp
Beiträge: 1409
Registriert: 11.06.2005 20:11:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nähe Heidelberg

[Bash] Datei auslesen von xyz bis xyz (gelöst)

Beitrag von ckoepp » 16.08.2007 14:58:25

Hallo nochmal,

habe ein weiteres Problem und finde nur sehr unelegante Lösungen :(

Meine Datei hat folgenden Aufbau:

Code: Alles auswählen

(...)
xyz Hallo
Bla 
Blubb
Bla
MoinMoin
xyz Hallo0815
(...)
Ich brauche nun alle Zeilen unterhalb des Strings "xyz Hallo" bis (nicht einschliesslich) "xyz Hallo0815". Das Ganze muss bei einer beliebigen Anzahl von Zeilen funktionieren. Ein grep mit -C zum Beispiel fällt damit weg. Und die gesamte Datei durchzugehen ist auch keine Alternative, denn sie ist mehrere tausend Zeilen lang und die Aktion muss ca. 40 Mal durchgeführt werden :(

Jemand eine Anregung für mich?
Wäre sehr dankbar :)
Zuletzt geändert von ckoepp am 16.08.2007 15:24:28, insgesamt 1-mal geändert.
"Es gibt kein Problem, das man nicht mit einem doppelten Scotch lösen könnte!"
Ernest Hemingway

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 16.08.2007 15:04:40

Erinnert mich ein wenig hieran: http://www.debianforum.de/forum/viewtop ... highlight=

Du könntest mal folgendes (ungetestete) Awk-Skript versuche:

Code: Alles auswählen

/^xyz Hallo$/ {
  found = 1;
  next;
}

/^xyz Hallo0815/ && found {
  found = 0;
  next;
}

{
  if (found) {
    print $0;
   next;
  }
}
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Benutzeravatar
ckoepp
Beiträge: 1409
Registriert: 11.06.2005 20:11:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nähe Heidelberg

Beitrag von ckoepp » 16.08.2007 15:20:41

Ich bin beeindruckt :)
Herzlichen Dank!

War ja wiedermal klar...gestern hab ich mir ein awk & sed Buch bestellt weil ich endlich lernen wollte mit awk zu arbeiten :)
Wird aber erst in drei Wochen geliefert :(
"Es gibt kein Problem, das man nicht mit einem doppelten Scotch lösen könnte!"
Ernest Hemingway

Antworten