Durchsuchen

Mit Grep durchsuchen Sie Textdateien oder Datenströme. Innerhalb von Shell-Skripten oder im direkten Aufruf stehen zahlreiche Optionen zum Verfeinern der Ausgabe bereit. Eine Auswahl davon fasst die Tabelle "Grep-Optionen" zusammen.

Grep-Optionen

Option Aktion
Suchmuster als …
-E erweiterten regulären Ausdruck betrachten
-G gewöhnlichen regulären Ausdruck betrachten (Standard)
-P erweiterten regulären Perl-Ausdruck betrachten
Angaben zum Suchmuster und Ergebnis
-e Muster Suchmuster angeben; mehrfache Angabe bei -P nicht möglich, sonst immer
-f Datei Suchmuster aus Datei lesen
-i Groß/Kleinschreibung ignorieren
-v Zeilen ausgeben, die nicht übereinstimmen (Umkehrung)
-c Anzahl Treffer ausgeben, bei Option -v Ausgabe nicht übereinstimmender Zeilen
--color farbige Bildschirmausgabe
-n Zeilennummer
-q keine Ausgabe (für Skripte, die Rückgabewert auswerten)
Angaben zu Dateien
-l Dateinamen anstelle Fundstelle ausgeben
-L Name von Dateien ohne Treffer ausgeben
-h Dateinamen bei Ausgabe der Treffer unterdrücken
-H Angabe des Dateinamens bei Ausgabe (Standard)
-r rekursiv durch die Dateien suchen
Erweiterte Ausgabe
-A Zahl Zahl Zeilen nach Fundstelle zusätzlich ausgeben
-B Zahl Zahl Zeilen vor Fundstelle zusätzlich ausgeben
-C Zahl Zahl Zeilen vor und nach Fundstelle zusätzlich ausgeben

Die Suchbegriffe dürfen reguläre Ausdrücke enthalten. Dabei geben Sie ein Muster statt eines eindeutigen Begriffs an. In vielen Fällen kommen Sie auf verschiedenen Wegen zum gleichen Ergebnis. Für Zeichenklassen in Suchmustern verwenden Sie spezielle Kennzeichnungen (siehe Tabelle "Zeichenklassen"). Die Schreibweise erfordert doppelte, eckige Klammern.

Zeichenklassen

Ausdruck Klasse
'[[:alpha:]]' Buchstaben
'[[:alnum:]]' Buchstaben und Ziffern
'[[:digit:]]' Ziffern
'[[:space:]]' Leerzeichen
'[[:xdigit:]]' Hexadezimalziffern
'[[:cntrl:]]' Steuerzeichen
'[[:punct:]]' Satzzeichen
'[[:lower:]]' Kleinbuchstaben
'[[:upper:]]' Großbuchstaben

Grundsätzlich dürfen Sie alle Optionen innerhalb einer Pipe anwenden, sofern es sich nicht um solche handelt, die Dateien oder Verzeichnisse betreffen. Für das Programmieren von Skripten sind die Rückgabewerte wichtig: 0 steht für einen gefundenen Wert, 1 für die Fehlanzeige. Sonstige Fehler quittiert grep mit dem Exit-Code 2.

Für einen Test und als kleine Basis für Experimente bietet sich das Skript suchenmitgrep.sh aus Listing 9 an. Sie beenden es, indem Sie bei der Eingabe mittels [Strg]+[C] abbrechen.

Listing 9

#! /bin/sh
while true; do
  echo -n "Suchbegriff eingeben: ";read SUBE
  grep -q $SUBE a.txt
  RUEWE=$(echo $?)
  if [ $RUEWE -eq 0 ]; then
    echo "Suchbegriff gefunden"
  elif [ $RUEWE -eq 1 ]; then
    echo "Kein Treffer"
  fi
done

Blättern und Suchen

Ein komfortables Programm zum Blättern und Durchsuchen ist Less. Das gilt gleichermaßen für Textdateien (less Datei) wie für den Einsatz am Ende einer Pipe. Die wichtigsten Optionen führt die Tabelle "Less-Optionen" auf.

Wie Sie letztendlich mit dem Programm arbeiten, hängt vor allem von den Eigenschaften des verwendeten Terminalprogramms ab. Dies betrifft insbesondere die Navigation im Text. Sie beenden das Programm in jedem Fall mittels [Q].

Less-Optionen

Option Hinweis
-? Hilfe
-E automatisches Programmende beim Erreichen des Dateiendes, bei kurzen Inhalten keine Anzeige
-e automatisches Programmende beim zweimaligen Erreichen des Endes der Datei
-f ermöglicht Einsatz bei nicht druckbaren Zeichen
-m Anzeige der aktuellen Position im Text in Bytes oder Prozent
-M Anzeige der aktuellen Zeile im Text
-N Zeilen nummerieren
-O Datei bei Pipes: gelesenen Inhalt in Datei speichern
-o Datei bei Pipes: gelesenen Inhalt in Datei speichern, Überschreiben bestätigen
-p Muster bei Aufruf nach Muster suchen
-s aufeinanderfolgende Leerzeilen zusammenfassen
-S überlange Zeilen abschneiden

Die Navigation ähnelt jener beim beliebten Editor Vim; die Tabelle "Navigation" gibt Aufschluss über die entsprechenden Tasten. Bei den meisten Distributionen funktionieren jedoch zusätzlich die Pfeiltasten.

Navigation

Richtung Tasten
Zeile nach unten [Pfeil unten] / [Eingabe] / [J]
Seite nach unten [Bild unten] / [Leertaste]
Dokumentenende [Ende] / [Umschalt]+[G]
Dokumentenanfang [Pos1] / [1],[G]
Seite nach oben [Bild-auf] / [B]
Zeile nach oben [Pfeil-oben] / [K] / [Y]
Rest der Zeile (rechts) anzeigen [Pfeil-rechts]
Linker Rand [Pfeil-links]

Blättern Sie mit Less eine Textdatei durch, haben Sie die Möglichkeit, über [V] einen Editor zu öffnen. Falls Sie die Taste drücken, während der Pager mit der Ausgabe einer Pipe arbeitet, erscheint lediglich eine Fehlermeldung. Interessant ist die Suche: Über die Eingabe /Suchbegriff" und einen Druck auf die Eingabetaste starten Sie die Anfrage; die Ergebnisse erscheinen invers unterlegt (Abbildung 1).

Abbildung 1: Suchen Sie innerhalb von Less nach einem Begriff, hinterlegt die Software die gefundenen Stellen invers.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 9 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Immer schön der Reihe nach
    Bei der Arbeit mit strukturierten Textdateien bietet Miller eine clevere Alternative zu herkömmlichen Werkzeugen wie Grep, Cut, Sed und anderen.
  • Am Fließband
    Mit Sed editieren Sie Textdaten ohne interaktive Benutzeroberfläche – auch in Pipes oder der Eingabeumlenkung. In einer einzigen Zeile lassen sich umfangreiche Editierkommandos absetzen.
  • Gut gefiltert
    Zu den häufigsten Aufgaben bei der Arbeit am Rechner zählt das Durchstöbern von Texten nach Suchmustern. Icgrep bietet hier eine moderne, parallel arbeitende und Unicode-fähige Alternative zum klassischen Grep.
  • Stream-Editor sed
    Für stets wiederkehrende Aufgaben an einer oder mehreren Dateien kann das Arbeiten mit einem reinen Text-Editor schnell mühsam werden. Mit "sed" sparen Sie jede Menge Tipparbeit.
  • Einführung in die Shell – Teil 3
    In den ersten zwei Teilen der Shell-Einführung [1,2] haben wir Sie mit den Grundlagen der Shell vertraut gemacht. Jetzt stellen wir einige Spezialtools vor, mit denen die Shell besonders leistungsfähig wird – darunter "xargs".
Kommentare

Infos zur Publikation

LU 02/2018: PAKETE VERWALTEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Wifikarte verhindert Bootvorgang
Maik Kühn, 21.01.2018 22:23, 0 Antworten
iwlwifi-7265D -26 failed to load iwlwifi-7265D -25 failed to load iwlwifi-7265D -24 failed to l...
sharklinux
Gerd-Peter Behrendt, 18.01.2018 23:58, 1 Antworten
Hallo zusammen, ich habe sharklinux von der DVD Installiert. 2x, jedesmal nach dem Reboot ist di...
Anfänger sucht Ratschläge
Alucard Nosferatu, 18.01.2018 21:56, 3 Antworten
Guten Tag, meine Wenigkeit würde gerne auf einer meiner Festplatten von meinen Feldrechnern e...
Suchprogramm
Heiko Taeuber, 17.01.2018 21:12, 1 Antworten
Hallo liebe Community, keine Ahnung ob dieses Thema hier schon einmal gepostet wurde. Ich hab...
Linux Mint als Zweitsystem
Wolfgang Robert Luhn, 13.01.2018 19:28, 4 Antworten
Wer kann mir helfen??? Habe einen neuen Laptop mit vorinstaliertem Windows 10 gekauft. Möchte g...