Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Grep-Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jan 2007
    Beiträge
    25

    Grep-Problem

    Hallo,

    vielleicht hat jemand eine gute Idee zu folgendem Problem: Ich habe eine Textdatei, in der ich nach einem Schlüsselwort suche. Die Schlüsselwörter sind Namen. In den nachfolgenden Zeilen befinden sich dann verschiedene Einträge. Zuletzt folgt eine Leerzeile und in der darauf folgenden Zeile das nächste Schlüsselwort.

    Ziel ist es, das gesuchte Schlüsselwort und alle nachfolgenden Zeilen auszugeben. Nun sind leider die Anzahl der einem Schlüsselwort folgenden Zeilen nicht immer gleich, sodass ich nicht mit grep -A arbeiten kann. Das einzige, was mir hilft, ist die Leerzeile nach einem Abschnitt. Nun ist meine Frage, ob es eine möglichkeit auf der Konsole gibt, nach dem gefundenen Schlüsselwort alle nachfolgenden Zeilen auszugeben, bis die Suche auf eine Leerzeile trifft.

    Hat hier jemand eine Idee??

  2. #2
    Registrierter Benutzer Avatar von ThorstenHirsch
    Registriert seit
    Nov 2002
    Beiträge
    6.418
    Klar, aber nicht mit grep, sondern mit Perl:
    Code:
    #!/usr/bin/env perl
    
    die "pattern required" unless $ARGV[1];
    $speak = 0;
    
    open(FH, "< $ARGV[0]") or die "couldn't open $ARGV[0]";
    while(<FH>) {
        $speak = 1 if $_ =~ /$ARGV[1]/;
        print $_ if $speak;
        $speak = 0 if /^\s*$/;
    }
    close(FH);
    
    exit 0;
    ¡Nuestro amigo... el Computador!

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jan 2007
    Beiträge
    25
    Vielen Dank! Eine Frage hätte ich noch: an welcher Stelle könnte ich mein Schlüsselwort im Script fest "verdrahten"? Weil ich häufig nur ein Schlüsselwort nutze, nachdem ich suche...
    Geändert von Jan100 (05.01.20 um 14:03 Uhr)

  4. #4
    Registrierter Benutzer Avatar von ThorstenHirsch
    Registriert seit
    Nov 2002
    Beiträge
    6.418
    Dann schmeißt Du ganz am Anfang die Zeile "die..." raus und ersetzt in der ersten Zeile des while-Blocks "$ARGV[1]" mit deinem Wort. Die beiden Slashes müssen bleiben. Das Skript erwartet dann nur noch den Dateiname als Argument beim Aufruf.
    ¡Nuestro amigo... el Computador!

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jan 2007
    Beiträge
    25
    Super, vielen Dank!

Ähnliche Themen

  1. grep problem
    Von rene04 im Forum Anwendungen Allgemein, Software
    Antworten: 9
    Letzter Beitrag: 09.06.10, 21:29
  2. Problem mit grep
    Von carda im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 17.10.06, 07:26
  3. Problem mit grep
    Von Simcemilia im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 19.10.05, 15:51
  4. ps und grep: warum findet grep sich selbst nicht immer?
    Von variant im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 24.03.04, 22:32
  5. grep problem
    Von real-challo im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 03.12.02, 22:19

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •