Grep- (1) Handbuchseite

Grep- (1) Handbuchseite

Name

Grep, Egrep, FGREP, RGREP - Drucken Linien, die einem Muster entsprechen

Zusammenfassung

Grep [OPTIONEN] MUSTER [DATEI…]
Grep [OPTIONEN] [-e MUSTER | -F DATEI] [DATEI…]

Beschreibung

Grep Sucht die benannte Eingabe DATEIs (oder Standardeingabe, wenn keine Dateien benannt sind oder wenn ein einzelner Bindestrich (minus) (-) wird als Dateiname angegeben) für Zeilen, die eine Übereinstimmung mit dem gegebenen enthalten MUSTER. Standardmäßig, Grep druckt die passenden Zeilen aus.

Darüber hinaus drei Variantenprogramme Egrep, FGREP Und RGREP stehen zur Verfügung. Egrep ist das gleiche wie grep -e. FGREP ist das gleiche wie grep -f. RGREP ist das gleiche wie grep -r. Direkte Aufruf als beiden Egrep oder FGREP ist veraltet, wird jedoch bereitgestellt, um historische Anwendungen zu ermöglichen, die darauf angewiesen sind.

Optionen

Generische Programminformationen

-Hilfe
Drucken Sie eine Nutzungsnachricht aus, die diese Befehlszeilenoptionen und die Fehlerberichtsadresse kurz zusammenfassen, und beenden Sie anschließend.
-V, -Ausführung
Drucken Sie die Versionsnummer von aus Grep zum Standardausgangsstrom. Diese Versionsnummer sollte in allen Fehlerberichten enthalten sein (siehe unten).

Match -Auswahl

-E, -erweitert-regexp
Interpretieren MUSTER Als erweiterter regulärer Ausdruck (ehe siehe unten). (-E wird von POSIX angegeben .)
-F, -feste Saine
Interpretieren MUSTER Als eine Liste fester Saiten, die durch Newlines getrennt sind, von denen eine übereinstimmte. (-F wird von POSIX angegeben .)
-G, -Basic-Regexp
Interpretieren MUSTER Als grundlegender regulärer Ausdruck (BRE siehe unten). Dies ist der Standardwert.
-P, -Perl-Regexp
Interpretieren MUSTER Als Perl regelmäßiger Ausdruck. Dies ist sehr experimentell und grep -p Mai warnen vor nicht implementierten Merkmalen.

Übereinstimmende Kontrolle

-e MUSTER, -regexp =MUSTER
Verwenden MUSTER als Muster. Dies ist nützlich, um Muster zu schützen, beginnend mit Hyphen-Minus (-). (-e wird von POSIX angegeben .)
-F DATEI, -Datei =DATEI
Erhalten Sie Muster von DATEI, eine pro Zeile. Die leere Datei enthält Nullmuster und passt daher nicht ab. (-F wird von POSIX angegeben .)
-ich, -Fall ignorieren
Ignorieren Sie Fallunterschiede in beiden MUSTER und die Eingabedateien. (-ich wird von POSIX angegeben .)
-v, -Invert-Match
Umgeben Sie das Gefühl der Übereinstimmung, um nicht übereinstimmende Zeilen auszuwählen. (-v wird von POSIX angegeben .)
-w, -wort-regexp
Wählen Sie nur die Zeilen mit Übereinstimmungen aus, die ganze Wörter bilden. Der Test besteht. In ähnlicher Weise muss es entweder am Ende der Linie oder gefolgt von einem konstituierenden Charakter ohne Wörter liegen. Wortkonstituierende Zeichen sind Buchstaben, Ziffern und der Unterstrich.
-X, -Lingexp
Wählen Sie nur diese Übereinstimmungen aus, die genau der gesamten Zeile übereinstimmen. (-X wird von POSIX angegeben .)
-y
Veraltetes Synonym für -ich.

Allgemeine Ausgangskontrolle

-C, -zählen
Den normalen Ausgang unterdrücken; Drucken Sie stattdessen für jede Eingabedatei eine Anzahl von übereinstimmenden Zeilen aus. Mit dem -v, -Invert-Match Option (siehe unten), zählen Sie nicht übereinstimmende Zeilen. (-C wird von POSIX angegeben .)
-Farbe[=WENN], -Farbe[=WENN]
Umgeben Sie die übereinstimmenden (nicht leeren) Zeichenfolgen, übereinstimmenden Zeilen, Kontextlinien, Dateinamen, Zeilennummern, Byte-Offsets und Separatoren (für Felder und Gruppen von Kontextlinien) mit Escape-Sequenzen, um sie in Farbe auf dem Terminal anzuzeigen. Die Farben werden durch die Umgebungsvariable definiert Grep_colors. Die veraltete Umgebungsvariable Grep_color wird immer noch unterstützt, aber seine Einstellung hat keine Priorität. WENN Ist niemals, stets, oder Auto.
-L, -Dateien mit dem Match
Den normalen Ausgang unterdrücken; Drucken Sie stattdessen den Namen jeder Eingabedatei aus, aus der normalerweise keine Ausgabe gedruckt worden wäre. Das Scannen hört beim ersten Match auf.
-l, -Dateien mit Matchs
Den normalen Ausgang unterdrücken; Drucken Sie stattdessen den Namen jeder Eingabedatei aus, aus der die Ausgabe normalerweise gedruckt worden wäre. Das Scannen hört beim ersten Match auf. (-l wird von POSIX angegeben .)
-M Num, -max-count =Num
Hören Sie danach auf, eine Datei zu lesen Num passende Linien. Wenn die Eingabe eine Standardeingabe aus einer regulären Datei ist, und Num Übereinstimmende Leitungen werden ausgegeben, Grep stellt sicher, dass der Standardeingang kurz nach der letzten Übereinstimmung vor dem Verlassen positioniert ist, unabhängig vom Vorhandensein von nachverfolgenden Kontextlinien. Dies ermöglicht einen Aufrufprozess, um eine Suche wieder aufzunehmen. Wenn Grep Stoppt danach Num Übereinstimmende Linien gibt alle nachverfolgenden Kontextlinien aus. Wenn das -C oder -zählen Option wird auch verwendet, Grep gibt keine Anzahl größer als aus Num. Wenn das -v oder -Invert-Match Option wird auch verwendet, Grep Stoppt nach Ausgabe Num nicht passende Linien.
, -nur Matching
Drucken Sie nur die übereinstimmenden (nicht leeren) Teile einer übereinstimmenden Linie mit jedem solchen Teil auf einer separaten Ausgangsleitung.
-Q, -ruhig, -still
Ruhig; Schreiben Sie nichts in die Standardausgabe. Beenden Sie sofort mit Null -Status, wenn eine Übereinstimmung gefunden wird, auch wenn ein Fehler festgestellt wurde. Siehe auch die -S oder -keine Nachrichten Möglichkeit. (-Q wird von POSIX angegeben .)
-S, -keine Nachrichten
Unterdrücken Sie Fehlermeldungen zu nicht vorhandenen oder nicht lesbaren Dateien. Portabilität Hinweis: Im Gegensatz zu GNU Grep, 7. Ausgabe Unix Grep hat sich nicht an Posix entschieden, weil es fehlte -Q und sein -S Option verhielt sich wie GNU Grep'S -Q Möglichkeit. USG -Stil Grep auch fehlte -Q aber es ist -S Option verhielt sich wie GNU Grep. Portable Shell -Skripte sollten beide vermeiden -Q Und -S und sollte die Standard- und Fehlerausgabe um umleiten /dev/null stattdessen. (-S wird von POSIX angegeben .)

Ausgangsleitung Präfixsteuerung

-B, -Byte-Offset
Drucken Sie den 0-basierten Byte-Offset in der Eingabedatei vor jeder Ausgabezeile aus. Wenn (-nur Matching) wird angegeben, drucken Sie den Versatz des passenden Teils selbst aus.
-H, -mit Filmname
Drucken Sie den Dateinamen für jedes Spiel aus. Dies ist die Standardeinstellung, wenn mehr als eine Datei gesucht werden muss.
-H, -No-FilmName
Unterdrücken Sie die Präfixierung von Dateinamen bei der Ausgabe. Dies ist die Standardeinstellung, wenn nur eine Datei (oder nur eine Standardeingabe) für die Suche vorhanden ist.
-Etikett =ETIKETT
Zeigen Sie die Eingabe an, die tatsächlich von der Standardeingabe als Eingabe aus der Datei stammt ETIKETT. Dies ist besonders nützlich für Tools wie Zgrep, e.G., gzip -cd foo.gz | grep -label = foo etwas
-N, -Zeilennummer
Präfix jeder Ausgabezeile mit der 1-basierten Zeilennummer in der Eingabedatei. (-N wird von POSIX angegeben .)
-T, -initial-tab
Stellen Sie sicher, dass der erste Charakter des tatsächlichen Zeileninhalts auf einem Registerkarte Stopp liegt, damit die Ausrichtung der Registerkarten normal aussieht. Dies ist nützlich bei Optionen, die deren Ausgabe dem tatsächlichen Inhalt präfixen: -H,-N, Und -B. Um die Wahrscheinlichkeit zu verbessern, dass Zeilen aus einer einzelnen Datei alle in derselben Spalte beginnen, wird auch die Zeilennummer und die Byte -Offset (falls vorhanden) in einer Feldbreite minimaler Größen gedruckt werden.
-u, -Unix-byte-offsets
Melden Sie Byte-Offsets im Unix-Stil. Dieser Schalter verursacht Grep Um Byte-Offsets so zu melden, als wäre die Datei eine Textdatei im Unix-Stil, i, ich.e., mit CR -Charakteren abgezogen. Dies führt zu Ergebnissen, die mit dem Rennen identisch sind Grep Auf einer Unix -Maschine. Diese Option hat keine Wirkung, es sei denn -B Option wird auch verwendet; Es hat keinen Einfluss auf andere Plattformen als MS -DOS und MS --Windows.
-Z, -Null
Ein Null -Byte ausgeben (die ASCII Nul Zeichen) anstelle des Zeichens, das normalerweise einem Dateinamen folgt. Zum Beispiel, Grep -lz gibt nach jedem Dateinamen ein Null -Byte anstelle der üblichen Newline aus. Diese Option macht die Ausgabe eindeutig, selbst in Gegenwart von Dateinamen, die ungewöhnliche Zeichen wie Newlines enthalten. Diese Option kann mit Befehlen wie verwendet werden Finden Sie -print0, Perl -0, sortieren -z, Und xargs -0 Um beliebige Dateinamen zu verarbeiten, auch diejenigen, die neue Zeichen enthalten.

Kontextlinienkontrolle

-A Num, -After-Context =Num
Drucken Num Linien des nachfolgenden Kontextes nach passenden Zeilen. Platziert eine Linie, die einen Gruppentrennzeichen enthält (-) zwischen zusammenhängenden Gruppen von Spielen. Mit dem oder -nur Matching Option, dies hat keine Wirkung und eine Warnung wird gegeben.
-B Num, -vor dem Kontext =Num
Drucken Num Linien des führenden Kontext. Platziert eine Linie, die einen Gruppentrennzeichen enthält (-) zwischen zusammenhängenden Gruppen von Spielen. Mit dem oder -nur Matching Option, dies hat keine Wirkung und eine Warnung wird gegeben.
-C Num, -Num, -Kontext =Num
Drucken Num Zeilen des Ausgangskontexts. Platziert eine Linie, die einen Gruppentrennzeichen enthält (-) zwischen zusammenhängenden Gruppen von Spielen. Mit dem oder -nur Matching Option, dies hat keine Wirkung und eine Warnung wird gegeben.

Datei- und Verzeichnisauswahl

-A, -Text
Verarbeiten Sie eine binäre Datei, als wäre sie Text; Dies entspricht der -Binärdateien = Text Möglichkeit.
-Binärdateien =TYP
Wenn die ersten Bytes einer Datei angeben, dass die Datei binäre Daten enthält, gehen Sie davon aus, dass die Datei vom Typ ist TYP. Standardmäßig, TYP Ist binär, Und Grep Normalerweise gibt es entweder eine Einzeilungsnachricht aus, die besagt, dass eine binäre Datei übereinstimmt, oder keine Nachricht. Wenn TYP Ist ohne Match, Grep Angenommen, dass eine binäre Datei nicht übereinstimmt; Dies entspricht der -ICH Möglichkeit. Wenn TYP Ist Text, Grep verarbeitet eine binäre Datei, als wäre sie Text; Dies entspricht der -A Möglichkeit. Warnung: Grep -binäre Files = Text Möglicherweise Ausgabe von Binärmüll, der böse Nebenwirkungen haben kann, wenn der Ausgang ein Terminal ist und wenn der Terminalfahrer einen Teil davon als Befehle interpretiert.
-D AKTION, -Geräte =AKTION
Wenn eine Eingabedatei, ein Gerät, ein FIFO oder ein Socket ist, verwenden Sie AKTION zu verarbeiten. Standardmäßig, AKTION Ist lesen, Dies bedeutet, dass Geräte so gelesen werden, als wären sie gewöhnliche Dateien. Wenn AKTION Ist überspringen, Geräte werden stillschweigend übersprungen.
-D AKTION, -Verzeichnisse =AKTION
Wenn eine Eingabedatei ein Verzeichnis ist, verwenden Sie AKTION zu verarbeiten. Standardmäßig, AKTION Ist lesen, Dies bedeutet, dass Verzeichnisse so gelesen werden, als wären sie gewöhnliche Dateien. Wenn AKTION Ist überspringen, Verzeichnisse werden stillschweigend übersprungen. Wenn AKTION Ist wiederholen, Grep liest alle Dateien unter jedem Verzeichnis rekursiv; Dies entspricht der -R Möglichkeit.
-ausschließen =Glob
Überspringen Sie Dateien, deren Grundname übereinstimmt Glob (mit Wildcard -Matching). Ein Dateiname-Glob kann verwenden *, ?, Und [] als Platzhalter und \ einen Wildcard- oder Backslash -Charakter buchstäblich zitieren.
-from =DATEI
Überspringen Sie Dateien, deren Basienname einer der von der Dateinamen gelesenen GLIples übereinstimmt DATEI (Verwenden der Wildcard -Matching wie unter beschrieben unter -ausschließen).
-ausschließen-dir =Dir
Verzeichnisse ausschließen, die dem Muster entsprechen Dir von rekursiven Suchanfragen.
-ICH
Verarbeiten Sie eine binäre Datei so, als würde sie keine übereinstimmenden Daten enthalten. Dies entspricht der -Binärdateien = ohne Match Möglichkeit.
-einschließen =Glob
Suchen Sie nur Dateien, deren Grundname übereinstimmt Glob (Verwenden der Wildcard -Matching wie unter beschrieben unter -ausschließen).
-R, -R, -rekursiv
Lesen Sie alle Dateien unter jedem Verzeichnis rekursiv. Dies entspricht der -D wiederholen Möglichkeit.

Andere Optionen

-liniengepuffer
Verwenden Sie die Leitungspufferung für die Ausgabe. Dies kann eine Leistungsstrafe verursachen.
-MMAP
Wenn möglich, verwenden Sie die MMAP(2) Systemaufruf zum Lesen der Eingaben anstelle des Standards lesen(2) Systemaufruf. In einigen Situationen, -MMAP liefert eine bessere Leistung. Jedoch, -MMAP Kann undefiniertes Verhalten (einschließlich Kerndeponien) verursachen, wenn eine Eingabedatei während der Verschlechterung schrumpft Grep betrieben oder wenn ein E/A -Fehler auftritt.
-U, -binär
Behandeln Sie die Dateien als binär. Standardmäßig unter MS -DOS und MS - -Windows, Grep Erraten Sie den Dateityp, indem Sie sich den Inhalt der ersten 32 -KB -Lesen aus der Datei ansehen. Wenn Grep Entscheidet die Datei ist eine Textdatei. Sie streift die CR -Zeichen aus dem Original -Dateiinhalt (um regelmäßige Ausdrücke mit ^ Und $ richtig arbeiten). Angeben -U Überschreibt diese Vermutung, wodurch alle Dateien gelesen und an den stimmhaften Mechanismus wörtlich übergeben werden. Wenn es sich bei der Datei um eine Textdatei mit CR/LF -Paaren am Ende jeder Zeile handelt, fehlschlägt einige regelmäßige Ausdrücke. Diese Option hat keinen Einfluss auf andere Plattformen als MS -DOS und MS --Windows.
-z, -NULL-DATA
Behandeln Sie den Eingang als eine Reihe von Linien, die jeweils durch ein Null -Byte (das ASCII beendet sind Nul Charakter) statt einer neuen Linie. Wie -Z oder -Null Option kann diese Option mit Befehlen wie verwendet werden sortieren -z um beliebige Dateinamen zu verarbeiten.

Reguläre Ausdrücke

Ein regulärer Ausdruck ist ein Muster, das eine Reihe von Strings beschreibt. Regelmäßige Ausdrücke werden analog zu arithmetischen Ausdrücken konstruiert, indem verschiedene Operatoren verwendet werden, um kleinere Ausdrücke zu kombinieren.

Grep versteht zwei verschiedene Versionen der regulären Expressionsyntax: "Basic" und "erweitert".'In GNU Grep, Es gibt keinen Unterschied in der verfügbaren Funktionalität unter Verwendung einer der beiden Syntaxe. In anderen Implementierungen sind grundlegende reguläre Ausdrücke weniger leistungsfähig. Die folgende Beschreibung gilt für erweiterte reguläre Ausdrücke. Unterschiede für grundlegende reguläre Ausdrücke werden anschließend zusammengefasst.

Die grundlegenden Bausteine ​​sind die regulären Ausdrücke, die einem einzelnen Charakter entsprechen. Die meisten Charaktere, einschließlich aller Buchstaben und Ziffern, sind reguläre Ausdrücke, die sich selbst entsprechen. Jedes Meta-Charakter mit besonderer Bedeutung kann durch Vorhergehen mit einem Backslash zitiert werden.

Die Periode . entspricht jedem einzelnen Charakter.

Charakterklassen und Klammerausdrücke

A Ausdruck von Klammer ist eine Liste von Zeichen von beigefügt von [ Und ]. Es entspricht jedem einzelnen Zeichen in dieser Liste; Wenn der erste Charakter der Liste der Pfarr ist ^ Dann passt es zu jedem Charakter nicht In der Liste. Zum Beispiel der reguläre Ausdruck [0123456789] entspricht einer einzelnen Ziffer.

Innerhalb eines Klammerausdrucks a Bereichsausdruck besteht aus zwei von einem Bindestrich getrennten Zeichen. Es passt zu jedem einzelnen Zeichen, die zwischen den beiden Zeichen, einschließlich der Sammelsequenz und des Zeichensatzes des Ortes, sortiert werden. Zum Beispiel im Standard -C -Gebietsschema, [Anzeige] ist äquivalent zu [A B C D]. Viele Orte sortieren Charaktere in Wörterbuchreihenfolge und in diesen Orten [Anzeige] ist normalerweise nicht gleichwertig zu [A B C D]; es könnte gleich sein mit [ABBCCDD], Zum Beispiel. Um die traditionelle Interpretation von Klammerausdrücken zu erhalten, können Sie das C -Gebietsschema verwenden, indem Sie die festlegen Lc_all Umgebungsvariable zum Wert C.

Schließlich sind bestimmte genannte Klassen von Zeichen in Klamme -Ausdrücken vordefiniert, wie folgt. Ihre Namen sind selbsterklärend und sie sind [: Alnum:], [:Alpha:], [: cntrl:], [:Ziffer:], [:Graph:], [:untere:], [:drucken:], [: punktieren:], [:Raum:], [:Oberer, höher:], Und [: xdigit:]. Zum Beispiel, [[: Alnum:]] bedeutet [0-9a-za-z], Außer der letzteren Form hängt vom C -Gebietsschema und der ASCII -Charakter -Codierung ab, während das erstere unabhängig von Gebietsschema und Charakter -Set ist. (Beachten Sie, dass die Klammern in diesen Klassennamen Teil der symbolischen Namen sind und zusätzlich zu den Klammern den Ausdruck der Klammer abgrenzen.) Die meisten Metabarakter verlieren ihre besondere Bedeutung innerhalb von Klammeausdrücken. Ein buchstäblicher Einbeziehung ] Platzieren Sie es zuerst in die Liste. In ähnlicher Weise ein wörtliches Einbeziehung ^ Platzieren Sie es überall außer zuerst. Schließlich ein wörtliches Einbeziehung - Platziere es zuletzt.

Verankerung

Die Pflege ^ und das Dollarschild $ sind Metabarakter, die jeweils der leeren Zeichenfolge am Anfang und am Ende einer Linie übereinstimmen.

Der Backslash -Charakter und besondere Ausdrücke

Die Symbole \< Und \> Stimmen Sie jeweils mit der leeren Zeichenfolge am Anfang und am Ende eines Wortes ab. Das Symbol \B entspricht der leeren Zeichenfolge am Rand eines Wortes und \B entspricht der leeren Zeichenfolge, die er bereitgestellt hat nicht am Rand eines Wortes. Das Symbol \ w ist ein Synonym für [[: Alnum:]] Und \ W ist ein Synonym für [^[: Alnum:]].

Wiederholung

Auf einen regelmäßigen Ausdruck kann einer von mehreren Wiederholungsoperatoren folgen:

?
Der vorhergehende Element ist optional und höchstens einmal übereinstimmt.
*
Der vorhergehende Element wird mit Null oder mehrmals abgestimmt.
+
Der vorhergehende Gegenstand wird ein oder mehrmals übereinstimmen.
N
Der vorhergehende Element ist genau übereinstimmt N mal.
N,
Der vorhergehende Gegenstand ist abgestimmt N oder öfter.
,M
Der vorhergehende Artikel ist höchstens übereinstimmt M mal.
N,M
Der vorhergehende Gegenstand wird zumindest übereinstimmen N Zeiten, aber nicht mehr als M mal.

Verkettung

Zwei reguläre Ausdrücke können verkettet werden; Der resultierende reguläre Ausdruck entspricht jeder Zeichenfolge, die durch Verkettung von zwei Substrings gebildet wird, die jeweils mit den verketteten Ausdrücken übereinstimmen.

Wechsel

Zwei reguläre Ausdrücke können vom Infix -Operator begleitet werden |; Der resultierende reguläre Ausdruck entspricht jeder String, die den beiden alternativen Ausdruck entspricht.

Vorrang

Wiederholung hat Vorrang vor der Verkettung, was wiederum Vorrang vor der Wechsel hat. Ein ganzer Ausdruck kann in Klammern eingeschlossen sein, um diese Vorrangregeln zu überschreiben und eine Unterexpression zu bilden.

Rückenreferenzen und Subtimpressionen

Die Rückversicherung \N, Wo N ist eine einzelne Ziffer, übereinstimmt mit dem zuvor von der übereinstimmenden Substring NDie Unterexpression des Elternteils des regulären Ausdrucks.

Grundlegende VS erweiterte reguläre Ausdrücke

In den regulären grundlegenden Ausdrücken die Metabarakterien ?, +, , |, (, Und ) ihre besondere Bedeutung verlieren; Verwenden Sie stattdessen die Backflashed -Versionen \?, \+, \ , \ |, \ (, Und \).

Traditionell Egrep habe die nicht unterstützt Metabarakter und einige Egrep Implementierungen Unterstützung \ Stattdessen sollten tragbare Skripte vermeiden In grep -e Muster und sollte verwenden [] zu einem buchstäblichen Zusammenhang zustimmen .

GNU grep -e Versuche, die traditionelle Verwendung zu unterstützen, indem sie dies annehmen ist nicht etwas Besonderes, wenn dies der Beginn einer ungültigen Intervallspezifikation wäre. Zum Beispiel der Befehl grep -e aq 1aq Sucht nach der Zwei-Charakter-Zeichenfolge 1 Anstatt einen Syntaxfehler im regulären Ausdruck zu melden. Posix.2 ermöglicht dieses Verhalten als Erweiterung, aber tragbare Skripte sollten es vermeiden.

Umgebungsvariablen

Das Verhalten von Grep wird von den folgenden Umgebungsvariablen betroffen.

Das Gebietsschema für die Kategorie LC_Foo wird durch Untersuchung der drei Umgebungsvariablen angegeben Lc_all, LC_Foo, Lang, in dieser Reihenfolge. Die erste dieser Variablen, die festgelegt wird, gibt das Gebietsschema an. Zum Beispiel wenn Lc_all ist nicht gesetzt, aber Lc_messages ist eingestellt auf pt_br, Dann wird das brasilianische portugiesische Gebietsschema für die verwendet Lc_messages Kategorie. Das C -Gebietsschema wird verwendet, wenn keine dieser Umgebungsvariablen festgelegt ist, wenn der Gebietskatalog nicht installiert ist oder wenn Grep wurde nicht mit Nationalsprache Support (NLS) zusammengestellt.

Grep_options
Diese Variable gibt die Standardoptionen an, die vor allen expliziten Optionen platziert werden sollen. Zum Beispiel wenn Grep_options Ist aq-binary-files = ohne Match-Verzeichnis = Skipaq, Grep verhält sich so, als wären die beiden Optionen -Binärdateien = ohne Match Und -Verzeichnisse = überspringen war vor expliziten Optionen angegeben worden. Optionspezifikationen werden durch Whitespace getrennt. Ein Backslash entgeht dem nächsten Charakter, sodass eine Option mit Whitespace oder Backslash angeben kann.
Grep_color
Diese Variable gibt die Farbe an, die zum Hervorheben des übereinstimmenden (nicht leeren) Textes verwendet wird. Es ist veraltet zugunsten von Grep_colors, aber immer noch unterstützt. Der mt, MS, Und MC Fähigkeiten von Grep_colors vorrangig machen. Es kann nur die Farbe angeben -v Befehlszeilenoption wird weggelassen oder eine Kontextzeile, wenn -v angegeben). Der Standard ist 01; 31, Dies bedeutet einen fett roten Vordergrundtext auf dem Standardhintergrund des Terminals.
Grep_colors
Gibt die Farben und anderen Attribute an, mit denen verschiedene Teile der Ausgabe hervorgehoben werden. Sein Wert ist eine dicker getrennte Liste von Funktionen, die standardmäßig standhalten MS = 01; 31: MC = 01; 31: sl =: cx =: fn = 35: ln = 32: bn = 32: SE = 36 mit dem RV Und ne Boolesche Fähigkeiten weggelassen (ich.e., FALSCH). Die unterstützten Fähigkeiten sind wie folgt.
sl =
SGR -Substring für ganze ausgewählte Zeilen (i.e., passende Zeilen, wenn die -v Die Befehlszeilenoption wird weggelassen oder nicht übereinstimmende Zeilen, wenn -v angegeben). Wenn jedoch der Boolesche RV Fähigkeit und die -v Die Befehlszeilenoption werden beide angegeben. Sie gilt stattdessen für Kontextübereinstimmungszeilen. Der Standard ist leer (ich.e., Das Standard -Farbpaar des Terminals).
cx =
SGR -Substring für ganze Kontextlinien (ich.e., nicht übereinstimmende Zeilen, wenn die -v Die Befehlszeilenoption wird weggelassen, oder übereinstimmen Zeilen, wenn -v angegeben). Wenn jedoch der Boolesche RV Fähigkeit und die -v Die Befehlszeilenoption werden beide angegeben. Sie gilt stattdessen für ausgewählte nicht übereinstimmende Zeilen. Der Standard ist leer (ich.e., Das Standard -Farbpaar des Terminals).
RV
Booleschen Wert, der die Bedeutungen der Bedeutungen umkehrt (wechselt) sl = Und cx = Fähigkeiten, wenn die -v Befehlszeilenoption wird angegeben. Der Standard ist falsch (ich.e., Die Fähigkeit wird weggelassen).
mt = 01; 31
SGR-Substring für den nicht leeren Text in jeder passenden Zeile (i.e., eine ausgewählte Linie, wenn die -v Befehlszeilenoption wird weggelassen oder eine Kontextzeile, wenn -v angegeben). Das Einstellen dieser Einstellung entspricht der Einstellung beider ms = Und MC = gleichzeitig zum gleichen Wert. Die Standardeinstellung ist ein fett roter Textvordergrund über dem aktuellen Zeilenhintergrund.
ms = 01; 31
SGR-Substring für den nicht leeren Text in einer ausgewählten Zeile. (Dies wird nur verwendet, wenn die -v Befehlszeilenoption wird weggelassen.) Die Wirkung der sl = (oder cx = Wenn RV) Die Fähigkeit bleibt aktiv, wenn dies einnimmt. Die Standardeinstellung ist ein fett roter Textvordergrund über dem aktuellen Zeilenhintergrund.
MC = 01; 31
SGR-Substring für den nicht leeren Text in einer Kontextzeile. (Dies wird nur verwendet, wenn die -v Befehlszeilenoption wird angegeben.) Die Wirkung der cx = (oder sl = Wenn RV) Die Fähigkeit bleibt aktiv, wenn dies einnimmt. Die Standardeinstellung ist ein fett roter Textvordergrund über dem aktuellen Zeilenhintergrund.
fn = 35
SGR -Substring für Dateinamen, die eine Inhaltslinie Präfixen. Der Standard ist ein Magenta -Textvordergrund über den Standardhintergrund des Terminals.
ln = 32
SGR -Substring für Zeilennummern, die eine Inhaltslinie vorangestellt. Die Standardeinstellung ist ein grüner Textvordergrund über den Standardhintergrund des Terminals.
Bn = 32
SGR -Substring für Byte -Offsets, das eine Inhaltslinie vorfixiert. Die Standardeinstellung ist ein grüner Textvordergrund über den Standardhintergrund des Terminals.
SE = 36
SGR -Substring für Separatoren, die zwischen ausgewählten Linienfeldern eingefügt werden (:) zwischen Kontextlinienfeldern (-) und zwischen Gruppen benachbarter Linien, wenn der Kontext ungleich Null angegeben ist ((-). Der Standard ist ein Cyan -Textvordergrund über den Standardhintergrund des Terminals.
ne
Boolescher Wert, der das Löschen bis zum Ende der Linie unter Verwendung von ERASE in Line (EL) nach rechts verhindert (nach rechts (\\\ 33 [k) Jedes Mal, wenn ein farbiger Artikel endet. Dies ist für Terminals erforderlich, an denen El nicht unterstützt wird. Es ist ansonsten nützlich für Terminals, für die die Back_color_erase (BCE. Der Standard ist falsch (ich.e., Die Fähigkeit wird weggelassen).

Beachten Sie, dass Boolesche Funktionen keine haben =… Teil. Sie werden weggelassen (ich.e., falsch) standardmäßig und werden wahr, wenn Sie angegeben sind.

Siehe den Abschnitt "Grafikrendition) ausgewählt werden in der Dokumentation des Textanschlusss, der für zulässige Werte und ihre Bedeutung als Zeichenattribute verwendet wird. Diese Substringwerte sind Ganzzahlen in der Dezimalrepräsentation und können mit Semikolonen verkettet werden. Grep kümmert sich um die Zusammenstellung des Ergebnisses in einer vollständigen SGR -Sequenz (\\\ 33 [M). Gemeinsame Werte, die verkettet werden müssen 1 für mutig, 4 für Unterstreichung, 5 Für Blink, 7 für inverse, 39 Für die Standard -Vordergrundfarbe, 30 Zu 37 Für Vordergrundfarben, 90 Zu 97 Für 16-Farben-Modus-Vordergrundfarben, 38; 5; 0 Zu 38; 5; 255 Für 88-Farben- und 256-Farben-Modi Vordergrundfarben, 49 Für die Standardhintergrundfarbe, 40 Zu 47 für Hintergrundfarben, 100 Zu 107 für 16-farbige Modus Hintergrundfarben und 48; 5; 0 Zu 48; 5; 255 Für 88-Colorand 256-Farben-Modi Hintergrundfarben.

Lc_all, Lc_collate, Lang
Diese Variablen geben das Gebietsschema für die an Lc_collate Kategorie, die die sammelende Sequenz bestimmt [A-Z].
Lc_all, Lc_ctype, Lang
Diese Variablen geben das Gebietsschema für die an Lc_ctype Kategorie, die die Art der Zeichen bestimmt, e.G., Welche Zeichen sind Weißespace.
Lc_all, Lc_messages, Lang
Diese Variablen geben das Gebietsschema für die an Lc_messages Kategorie, die die Sprache bestimmt, die Grep Verwendet für Nachrichten. Das Standard -C -Gebietsschema verwendet amerikanische englische Nachrichten.
Posixly_correct
Wenn gesetzt, Grep verhält sich als posix.2 erfordert; ansonsten, Grep verhält sich eher wie andere GNU -Programme. Posix.2 erfordert, dass Optionen, die Dateinamen folgen, als Dateinamen behandelt werden müssen. Standardmäßig werden solche Optionen an der Vorderseite der Operandenliste durchdrungen und als Optionen behandelt. Auch Possix.2 verlangt, dass nicht anerkannte Optionen als "illegal" diagnostiziert werden, aber da sie nicht wirklich gegen das Gesetz sind, besteht der Ausfall darin, sie als "ungültig" zu diagnostizieren. Posixly_correct deaktiviert auch _N_Gnu_nonoption_argv_flags_, nachstehend beschrieben.
_N_Gnu_nonoption_argv_flags_
(Hier N Ist Grepnumerische Prozess -ID.) Wenn die ichDer Wert dieser Umgebungsvariablenwert ist der Wert 1, Betrachten Sie die nicht die ichth Operand von Grep eine Option zu sein, auch wenn es anscheinend einer ist. Eine Shell kann diese Variable für jeden von ihr ausgeführten Befehl in die Umgebung einfügen und angeben, welche Operanden die Ergebnisse der Dateinamen -Wildcard -Erweiterung sind und daher nicht als Optionen behandelt werden sollten. Dieses Verhalten ist nur mit der GNU C -Bibliothek verfügbar und nur wann Posixly_correct ist nicht eingestellt.

Status beenden

Normalerweise beträgt der Exit -Status 0, wenn ausgewählte Zeilen gefunden werden und 1 ansonsten. Der Exit -Status beträgt jedoch 2, wenn ein Fehler aufgetreten ist, es sei denn, der -Q oder -ruhig oder -still Die Option wird verwendet und eine ausgewählte Linie wird gefunden. Beachten Sie jedoch, dass POSIX nur Mandate für Programme wie z Grep, CMP, Und diff, dass der Exit -Status im Fehlerfall größer als 1 ist; Aus Gründen der Portabilität ist es daher ratsam, eine Logik zu verwenden, die für diesen allgemeinen Zustand anstelle einer strengen Gleichheit mit 2 getestet wird.

Urheberrechte ©

Copyright © 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.

Dies ist kostenlose Software; Siehe die Quelle für das Kopieren von Bedingungen. Es gibt keine Garantie; Nicht einmal für Handelsfähigkeit oder Fitness für einen bestimmten Zweck.

Käfer

Meldung von Fehler

E -Mail -Fehlerberichte an <[email protected]>, eine Mailingliste, deren Webseite ist <http: // listen.Gnu.org/mailman/listInfo/bug-w-Grep >. Grep's Savannah Bug Tracker befindet sich bei <http: // savannah.Gnu.org/bugs/?Gruppe = Grep >.

Bekannte Fehler

Große Wiederholung zählt in der N,M Konstrukt kann verursachen Grep viel Speicher verwenden. Darüber hinaus erfordern bestimmte andere dunkle reguläre Ausdrücke eine exponentielle Zeit und den Raum und können verursachen und verursachen Grep den Gedächtnis ausgehen.

Verwandte Linux -Tutorials:

  • Python reguläre Ausdrücke mit Beispielen
  • Suchen Sie vs Find: Was ist der Unterschied
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten
  • So montieren Sie das ISO -Bild unter Linux
  • So vergleichen Sie Dateien mithilfe von Diff
  • So grep für Text in Bash -Skripten korrekt Grep
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Mastering -Bash -Skriptschleifen beherrschen
  • So fügen/entfernen Sie den Benutzer unter Manjaro Linux
  • Multi-Thread-Xargs mit Beispielen