Dies ist der Befehl pcregrep, der im kostenlosen OnWorks-Hosting-Provider über eine unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
pcregrep - ein grep mit Perl-kompatiblen regulären Ausdrücken.
ZUSAMMENFASSUNG
pcregrep [Optionen] [lang Optionen] [Muster] [Pfad1 Pfad2 ...] zpcgrep [Optionen] [lang
Optionen] [Muster] [Datei1 file2 ...]
BESCHREIBUNG
pcregrep durchsucht Dateien wie andere grep-Befehle nach Zeichenmustern,
Es verwendet jedoch die PCRE-Bibliothek für reguläre Ausdrücke, um kompatible Muster zu unterstützen
mit den regulären Ausdrücken von Perl 5. Siehe pcresyntax(3) für eine Kurzübersicht von
Mustersyntax, oder pkremuster(3) für eine vollständige Beschreibung der Syntax und Semantik von
die regulären Ausdrücke, die PCRE unterstützt.
Muster, ob auf der Kommandozeile oder in einer separaten Datei bereitgestellt, werden ohne
Trennzeichen. Zum Beispiel:
pcregrep Donnerstag /etc/motd
Wenn Sie versuchen, Trennzeichen zu verwenden (z. B. indem Sie ein Muster mit Schrägstrichen umgeben, wie z
ist in Perl-Skripten üblich), werden sie als Teil des Musters interpretiert. Zitate können von
natürlich verwendet werden, um Muster auf der Befehlszeile abzugrenzen, da sie von der . interpretiert werden
Shell, und in der Tat sind Anführungszeichen erforderlich, wenn ein Muster Leerzeichen oder eine Shell enthält
Metazeichen.
Das erste Argument, das auf alle Optionseinstellungen folgt, wird als das einzige zu behandelnde Muster behandelt
abgestimmt, wenn keiner -e noch -f ist anwesend. Umgekehrt, wenn eine oder beide dieser Optionen
werden zur Angabe von Mustern verwendet, alle Argumente werden als Pfadnamen behandelt. Mindestens einer von -e,
-f, oder es muss ein Argumentmuster angegeben werden.
Wenn keine Dateien angegeben sind, pcregrep liest die Standardeingabe. Die Standardeingabe kann auch
durch einen Namen referenziert werden, der aus einem einzelnen Bindestrich besteht. Zum Beispiel:
pcregrep irgendein Muster /Datei1 - /Datei3
Standardmäßig wird jede Zeile, die einem Muster entspricht, in die Standardausgabe kopiert, und wenn
gibt es mehr als eine Datei, wird der Dateiname am Anfang jeder Zeile ausgegeben, gefolgt von
durch einen Doppelpunkt. Es gibt jedoch Optionen, die ändern können, wie pcregrep verhält. In
insbesondere, die -M Option ermöglicht die Suche nach Mustern, die sich über Linien erstrecken
Grenzen. Was eine Liniengrenze definiert, wird durch die -N (--Neue Zeile) Möglichkeit.
Die Menge an Speicher, die zum Puffern von gescannten Dateien verwendet wird, wird von a . gesteuert
Parameter, der durch den . eingestellt werden kann --Puffergröße Möglichkeit. Der Standardwert dafür
Parameter wird angegeben, wenn pcregrep erstellt wird, wobei der Standardwert 20 KB beträgt. Ein Block
des Speichers wird dreimal so groß verwendet (um die Pufferung "vor" und "nach" zu ermöglichen
Linien). Ein Fehler tritt auf, wenn eine Zeile den Puffer überläuft.
Muster dürfen nicht länger als 8 KB oder BUFSIZ Bytes sein, je nachdem, welcher Wert größer ist. BUFSIZ ist
definiert in . Wenn mehr als ein Muster vorhanden ist (angegeben durch die Verwendung von -e
und / oder -f), wird jedes Muster auf jede Zeile in der Reihenfolge angewendet, in der sie definiert sind.
außer dass alle -e Muster werden vor dem -f Muster.
Sobald ein Muster mit einer Linie übereinstimmt, werden standardmäßig keine weiteren Muster berücksichtigt.
Wie auch immer, wenn --Farbe (oder --color) wird verwendet, um die übereinstimmenden Teilstrings einzufärben, oder wenn --nur-
Abstimmung, --file-offsets oder --line-offsets wird verwendet, um nur den Teil der Linie auszugeben
die übereinstimmen (entweder wörtlich oder als Offset angezeigt), wird der Scanvorgang sofort fortgesetzt
nach dem Match, damit weitere Matches in derselben Zeile gefunden werden können. Wenn es gibt
mehrere Muster, sie werden alle am Rest der Linie ausprobiert, aber Muster, die
Folgen Sie dem, der übereinstimmt, werden Sie im früheren Teil der Zeile nicht ausprobiert.
Dieses Verhalten bedeutet, dass die Reihenfolge, in der mehrere Muster angegeben werden, Auswirkungen auf
die Ausgabe, wenn eine der obigen Optionen verwendet wird. Das ist nicht mehr das gleiche Verhalten wie
GNU grep, das es jetzt schafft, frühere Übereinstimmungen für spätere Muster anzuzeigen (solange
es gibt keine Überlappung).
Muster, die mit einer leeren Zeichenfolge übereinstimmen können, werden akzeptiert, aber keine Übereinstimmungen mit leeren Zeichenfolgen
anerkannt. Ein Beispiel ist das Muster "(super)?(man)?", in dem alle Komponenten
Optional. Dieses Muster findet alle Vorkommen von "super" und "man"; die Ausgabe unterscheidet sich
nicht mit "super|man" übereinstimmen, wenn nur die passenden Teilstrings angezeigt werden.
Besitzt das LC_ALL or LC_CTYPE Umgebungsvariable ist gesetzt, pcregrep verwendet den Wert, um a . festzulegen
locale beim Aufrufen der PCRE-Bibliothek. Die - Gebietsschema Option kann verwendet werden, um dies zu überschreiben.
zpcgrep ist ein Wrapper-Skript, das es pcregrep ermöglicht, mit gzip-komprimierten Dateien zu arbeiten.
SUPPORT FÜR KOMPRIMIERT DATEIEN
Es ist möglich zu kompilieren pcregrep damit es nutzt libz or libbz2 um Dateien zu lesen, deren
Namen enden auf gz or . Bz2, bzw. Sie können herausfinden, ob Ihre Binärdatei unterstützt wird
für einen oder beide dieser Dateitypen durch Ausführen mit dem --help Möglichkeit. Wenn die
keine entsprechende Unterstützung vorhanden ist, werden Dateien als Nur-Text behandelt. Die Standardeingabe ist
immer so behandelt.
BINARY DATEIEN
Standardmäßig ist eine Datei, die innerhalb der ersten 1024 Byte ein binäres Nullbyte enthält,
als Binärdatei identifiziert und speziell verarbeitet. (GNU grep identifiziert auch binäre
Dateien auf diese Weise.) Siehe die --Binärdateien Möglichkeit, den Weg zu ändern
Binärdateien behandelt werden.
OPTIONAL
Die Reihenfolge, in der einige der Optionen angezeigt werden, kann sich auf die Ausgabe auswirken. Zum Beispiel die beiden
-h und -l Optionen wirken sich auf das Drucken von Dateinamen aus. Was auch immer später im Befehl kommt
Zeile wird diejenige sein, die wirksam wird. Ebenso, außer wo unten angegeben, wenn eine Option
zweimal angegeben wird, wird die spätere Einstellung verwendet. Numerischen Werten für Optionen kann gefolgt werden von
K oder M, um die Multiplikation mit 1024 bzw. 1024*1024 anzuzeigen.
-- Damit wird die Liste der Optionen beendet. Es ist nützlich, wenn das nächste Element auf dem
Die Befehlszeile beginnt mit einem Bindestrich, ist aber keine Option. Dies ermöglicht die
Verarbeitung von Mustern und Dateinamen, die mit Bindestrichen beginnen.
-A Anzahl, --after-context=Anzahl
Ausgang Anzahl Kontextzeilen nach jeder übereinstimmenden Zeile. Wenn Dateinamen und/oder
Zeilennummern ausgegeben werden, wird anstelle eines Doppelpunkts ein Bindestrich verwendet für
die Kontextzeilen. Zwischen jeder Zeilengruppe wird eine Zeile mit "--" ausgegeben,
es sei denn, sie sind in der Eingabedatei tatsächlich zusammenhängend. Der Wert von Anzahl is
voraussichtlich relativ klein sein. Jedoch, pcregrep garantiert bis zu 8K
des folgenden Textes für die Kontextausgabe verfügbar.
-a, --Text
Behandeln Sie Binärdateien als Text. Dies entspricht --Binärdateien=Text.
-B Anzahl, --before-context=Anzahl
Ausgang Anzahl Kontextzeilen vor jeder passenden Zeile. Wenn Dateinamen und/oder
Zeilennummern ausgegeben werden, wird anstelle eines Doppelpunkts ein Bindestrich verwendet für
die Kontextzeilen. Zwischen jeder Zeilengruppe wird eine Zeile mit "--" ausgegeben,
es sei denn, sie sind in der Eingabedatei tatsächlich zusammenhängend. Der Wert von Anzahl is
voraussichtlich relativ klein sein. Jedoch, pcregrep garantiert bis zu 8K
des vorhergehenden Textes für die Kontextausgabe verfügbar.
--binary-files=Wort
Geben Sie an, wie Binärdateien verarbeitet werden sollen. Wenn das Wort "binär" ist (die
Standard) wird der Mustervergleich für Binärdateien durchgeführt, aber die einzige Ausgabe ist
"Binärdatei matcht", wenn eine Übereinstimmung erfolgreich ist. Wenn das Wort "text" ist, was
entspricht dem -a or --Text Option werden Binärdateien gleich verarbeitet
Weise wie jede andere Datei. In diesem Fall, wenn eine Übereinstimmung erfolgreich ist, kann die Ausgabe lauten
binärer Müll, der böse Auswirkungen haben kann, wenn er an ein Terminal gesendet wird. Wenn das Wort
ist "ohne Übereinstimmung", was äquivalent zu dem -I Option, Binärdateien nicht
überhaupt verarbeitet; es wird davon ausgegangen, dass sie nicht von Interesse sind.
--buffer-size=Anzahl
Legen Sie den Parameter fest, der steuert, wie viel Speicher zum Puffern von Dateien verwendet wird, die
werden gescannt.
-C Anzahl, --kontext=Anzahl
Ausgang Anzahl Kontextzeilen sowohl vor als auch nach jeder passenden Zeile. Dies
entspricht der Einstellung von beidem -A und -B auf den gleichen Wert.
-c, --zählen
Geben Sie keine einzelnen Zeilen der gescannten Dateien aus; stattdessen
die Anzahl der Zeilen ausgeben, die sonst angezeigt worden wären. Wenn keine Linien sind
gewählt, wird die Zahl Null ausgegeben. Wenn mehrere Dateien gescannt werden, a
count wird für jeden von ihnen ausgegeben. Wenn jedoch die --files-with-matches Option ist
verwendet werden, werden nur die Dateien aufgelistet, deren Anzahl größer als Null ist. Wann
-c Wird verwendet -A, -B und -C Optionen werden ignoriert.
--Farbe, --color
Wenn diese Option ohne Daten angegeben wird, entspricht sie "--colour=auto".
Wenn Daten erforderlich sind, müssen sie im gleichen Shell-Element angegeben werden, getrennt durch ein
gleich Zeichen.
--color=Wert, --farbe=Wert
Diese Option gibt an, unter welchen Umständen die Teile einer Zeile, die übereinstimmen
ein Muster sollte in der Ausgabe farbig sein. Standardmäßig ist die Ausgabe nicht
farbig. Der Wert (der optional ist, siehe oben) kann "nie", "immer" oder . sein
"Auto". Im letzteren Fall erfolgt die Einfärbung nur, wenn die Standardausgabe
mit einem Terminal verbunden. Wenn die Farbgebung aktiviert ist, werden mehr Ressourcen verwendet.
weil pcregrep muss nach allen möglichen Übereinstimmungen in einer Zeile suchen, nicht nur nach einer,
um sie alle zu färben.
Die verwendete Farbe kann durch Setzen der Umgebungsvariablen festgelegt werden
PCREGREP_COLOUR oder PCREGREP_COLOR. Der Wert dieser Variablen sollte ein String sein
aus zwei Zahlen, getrennt durch ein Semikolon. Sie werden direkt in die . kopiert
Steuerzeichenfolge zum Einstellen der Farbe auf einem Terminal, daher liegt es in Ihrer Verantwortung,
sicherstellen, dass sie Sinn machen. Wenn keine der Umgebungsvariablen gesetzt ist, wird die
Standard ist "1;31", was Rot ergibt.
-D Aktion, --geräte=Aktion
Wenn ein Eingabepfad keine reguläre Datei oder kein Verzeichnis ist, gibt "action" an, wie es
zu verarbeiten ist. Gültige Werte sind "read" (Standard) oder "skip" (leise
den Weg überspringen).
-d Aktion, --verzeichnisse=Aktion
Wenn ein Eingabepfad ein Verzeichnis ist, gibt "action" an, wie er verarbeitet werden soll.
Gültige Werte sind "read" (die Standardeinstellung in Nicht-Windows-Umgebungen, z
Kompatibilität mit GNU grep), "recurse" (entspricht dem -r Option) oder "überspringen"
(Überspringen Sie den Pfad stillschweigend, die Standardeinstellung in Windows-Umgebungen). Im "Lesen"
In diesem Fall werden Verzeichnisse gelesen, als wären es normale Dateien. In einigen Betrieben
auf Systemen führt das Lesen eines solchen Verzeichnisses zu einem sofortigen Dateiende;
in anderen kann es einen Fehler provozieren.
-e Anleitungen, --regex=Anleitungen, --regexp=Anleitungen
Geben Sie ein Muster an, das abgeglichen werden soll. Diese Option kann mehrmals der Reihe nach verwendet werden
mehrere Muster angeben. Es kann auch verwendet werden, um eine einzelne . anzugeben
Muster, das mit einem Bindestrich beginnt. Wann -e verwendet wird, wird kein Argumentmuster verwendet
von der Befehlszeile; alle Argumente werden als Dateinamen behandelt. Es gibt kein
auf die Anzahl der Muster beschränken. Sie werden auf jede Zeile in der Reihenfolge in . angewendet
denen sie definiert sind, bis einer übereinstimmt.
If -f wird verwendet mit -e, werden die Befehlszeilenmuster zuerst abgeglichen, gefolgt von
die Muster aus der Datei(en), unabhängig von der Reihenfolge dieser Optionen
angegeben sind. Beachten Sie, dass die Mehrfachverwendung von -e ist nicht dasselbe wie ein einzelnes Muster
mit Alternativen. Zum Beispiel findet X|Y das erste Zeichen in einer Zeile, die ist
X oder Y, während, wenn die beiden Muster getrennt angegeben werden, mit X zuerst, pcregrep
findet X, wenn es vorhanden ist, auch wenn es in der Zeile auf Y folgt. Es findet Y nur, wenn
es gibt kein X in der Zeile. Dies ist nur wichtig, wenn Sie verwenden -o or --Farbe
um den/die übereinstimmenden Teil(e) der Zeile anzuzeigen.
--ausschließen=Anleitungen
Dateien (aber keine Verzeichnisse), deren Namen dem Muster entsprechen, werden ohne . übersprungen
verarbeitet wird. Dies gilt für alle Dateien, unabhängig davon, ob sie in der Befehlszeile aufgeführt sind,
erhalten von --Dateiliste, oder durch Scannen eines Verzeichnisses. Das Muster ist ein PCRE
regulärer Ausdruck und wird mit der letzten Komponente des Dateinamens abgeglichen,
nicht den ganzen Weg. Die -F, -w und -x Optionen gelten nicht für dieses Muster.
Die Option kann beliebig oft angegeben werden, um mehrere anzugeben
Muster. Wenn ein Dateiname sowohl --enthalten und ein --ausschließen Muster, es
ist ausgeschlossen. Für diese Option gibt es keine Kurzform.
--ausschließen-von=Dateinamen
Behandeln Sie jede nicht leere Zeile der Datei als Daten für eine --ausschließen Möglichkeit. Was
beim Lesen der Datei einen Zeilenumbruch darstellt, ist die Standardeinstellung des Betriebssystems.
Die --Neue Zeile Option hat keine Auswirkung auf diese Option. Diese Option kann mehr gegeben werden
als einmal, um eine Anzahl zu lesender Dateien anzugeben.
--exclude-dir=Anleitungen
Verzeichnisse, deren Namen dem Muster entsprechen, werden ohne Verarbeitung übersprungen,
unabhängig von der Einstellung des - rekursiv Möglichkeit. Dies gilt für alle Verzeichnisse,
ob auf der Befehlszeile aufgeführt, erhalten von --Dateiliste, oder durch Scannen a
übergeordnetes Verzeichnis. Das Muster ist ein regulärer PCRE-Ausdruck und wird abgeglichen
gegen die letzte Komponente des Verzeichnisnamens, nicht den gesamten Pfad. Die -F,
-w und -x Optionen gelten nicht für dieses Muster. Die Option kann beliebig gegeben werden
mehrmals, um mehr als ein Muster anzugeben. Wenn ein Verzeichnis
passt zu beiden --include-dir und --exclude-dir, ist ausgeschlossen. Es gibt keine kurze
Formular für diese Option.
-F, --fixed-strings
Interpretieren Sie jedes Datenabgleichsmuster als eine Liste fester Zeichenfolgen, getrennt durch
Zeilenumbrüche statt als regulärer Ausdruck. Was ist ein Zeilenumbruch für
dieser Zweck wird von der --Neue Zeile Option. Die -w (Übereinstimmung als Wort) und
-x (ganze Zeile abgleichen) Optionen können mit verwendet werden -F. Sie gelten für jeden der
feste Saiten. Eine Zeile wird ausgewählt, wenn eine der festen Zeichenfolgen darin gefunden wird
(vorbehaltlich -w or -x, Falls vorhanden). Diese Option gilt nur für die Muster, die
mit dem Inhalt von Dateien abgeglichen werden; es gilt nicht für Muster
angegeben von einem der --enthalten or --ausschließen nach.
-f Dateinamen, --Datei=Dateinamen
Lesen Sie Muster aus der Datei, eines pro Zeile, und gleichen Sie sie mit jeder Zeile von . ab
Eingang. Was beim Lesen der Datei einen Zeilenumbruch darstellt, ist die Bedienung
Standardeinstellung des Systems. Die --Neue Zeile Option hat keine Auswirkung auf diese Option. Nachlaufend
Leerzeichen werden aus jeder Zeile entfernt und Leerzeilen werden ignoriert. Ein leeres
Datei enthält keine Muster und stimmt daher mit nichts überein. Siehe auch die Kommentare
über mehrere Muster im Vergleich zu einem einzelnen Muster mit Alternativen im
Beschreibung von -e zu teilen.
Wird diese Option mehrmals angegeben, werden alle angegebenen Dateien gelesen. Ein Daten
line wird ausgegeben, wenn eines der Muster mit ihr übereinstimmt. Ein Dateiname kann als "-" angegeben werden
auf die Standardeingabe verweisen. Wann -f verwendet wird, Muster auf der
Befehlszeile mit -e kann auch vorhanden sein; Sie werden getestet, bevor die Datei
Muster. Es wird jedoch kein anderes Muster von der Befehlszeile übernommen; alle
Argumente werden wie die Namen der zu durchsuchenden Pfade behandelt.
--Dateiliste=Dateinamen
Lesen Sie eine Liste von Dateien und/oder Verzeichnissen, die aus den angegebenen Dateien gescannt werden sollen
Datei, eine pro Zeile. Nachgestellte Leerzeichen werden aus jeder Zeile entfernt und leer
Zeilen werden ignoriert. Diese Pfade werden vor allen verarbeitet, die auf der Liste aufgeführt sind
Befehlszeile. Der Dateiname kann als "-" angegeben werden, um auf die Standardeingabe zu verweisen.
If --Datei und --Dateiliste beide als "-" angegeben sind, werden Muster zuerst gelesen.
Dies ist nur sinnvoll, wenn die Standardeingabe ein Terminal ist, von dem aus weiter
Zeilen (die Liste der Dateien) können nach einer Ende-der-Datei-Anzeige gelesen werden. Wenn das
Wenn die Option mehrmals angegeben wird, werden alle angegebenen Dateien gelesen.
--file-offsets
Anstatt übereinstimmende Zeilen oder Teile von Zeilen anzuzeigen, zeigen Sie jede Übereinstimmung als ein
Offset vom Anfang der Datei und eine Länge, getrennt durch ein Komma. In diesem
Modus wird kein Kontext angezeigt. Das heißt, die -A, -B und -C Optionen werden ignoriert. Wenn
Es gibt mehr als eine Übereinstimmung in einer Zeile, jede von ihnen wird separat angezeigt. Dies
Option schließt sich gegenseitig aus mit --line-offsets und --only-matching.
-H, --mit-Dateiname
Erzwingen Sie die Aufnahme des Dateinamens am Anfang der Ausgabezeilen bei der Suche
eine einzelne Datei. Standardmäßig wird der Dateiname in diesem Fall nicht angezeigt. Zum Abgleichen
Zeilen folgt auf den Dateinamen ein Doppelpunkt; für Kontextzeilen ein Bindestrich
Trennzeichen verwendet wird. Wird zusätzlich eine Zeilennummer ausgegeben, folgt diese der Datei
Namen.
-h, --no-Dateiname
Unterdrücken Sie die Ausgabedateinamen, wenn Sie mehrere Dateien durchsuchen. Standardmäßig,
Dateinamen werden angezeigt, wenn mehrere Dateien durchsucht werden. Für passende Linien, die
auf den Dateinamen folgt ein Doppelpunkt; für Kontextzeilen wird ein Bindestrich-Trennzeichen verwendet.
Wird zusätzlich eine Zeilennummer ausgegeben, folgt diese auf den Dateinamen.
--help Geben Sie eine Hilfenachricht mit kurzen Details zu den Befehlsoptionen und dem Dateityp aus
unterstützen und dann beenden. Alles andere auf der Befehlszeile wird ignoriert.
-I Behandeln Sie Binärdateien als niemals übereinstimmend. Dies entspricht --binär-
Dateien=ohne Übereinstimmung.
-i, --Fall ignorieren
Ignorieren Sie die Groß-/Kleinschreibung bei Vergleichen.
--enthalten=Anleitungen
Wenn überhaupt --enthalten Muster angegeben sind, werden nur Dateien verarbeitet
diejenigen, die mit einem der Muster übereinstimmen (und nicht mit einem --ausschließen Muster).
Diese Option wirkt sich nicht auf Verzeichnisse aus, sie gilt jedoch für alle Dateien, unabhängig davon, ob
auf der Befehlszeile aufgelistet, erhalten von --Dateiliste, oder durch Scannen a
Verzeichnis. Das Muster ist ein regulärer PCRE-Ausdruck und wird mit dem
letzte Komponente des Dateinamens, nicht der gesamte Pfad. Die -F, -w und -x
Optionen gelten nicht für dieses Muster. Die Option kann mit beliebig vielen
mal. Wenn ein Dateiname sowohl als auch --enthalten und ein --ausschließen Muster, es ist
ausgeschlossen. Für diese Option gibt es keine Kurzform.
--include-from=Dateinamen
Behandeln Sie jede nicht leere Zeile der Datei als Daten für eine --enthalten Möglichkeit. Was
stellt zu diesem Zweck einen Zeilenumbruch dar, ist die Standardeinstellung des Betriebssystems. Die
--Neue Zeile Option hat keine Auswirkung auf diese Option. Diese Option kann beliebig gewählt werden
Anzahl; alle Dateien werden gelesen.
--include-dir=Anleitungen
Wenn überhaupt --include-dir Muster werden angegeben, die einzigen Verzeichnisse, die
verarbeitet sind diejenigen, die mit einem der Muster übereinstimmen (und nicht mit einem
--exclude-dir Muster). Dies gilt für alle Verzeichnisse, unabhängig davon, ob sie auf der
Befehlszeile, erhalten von --Dateiliste, oder durch Scannen eines übergeordneten Verzeichnisses. Die
pattern ist ein regulärer PCRE-Ausdruck und wird mit der endgültigen Komponente abgeglichen
des Verzeichnisnamens, nicht des gesamten Pfads. Die -F, -w und -x Optionen nicht
gelten für dieses Muster. Die Option kann beliebig oft vergeben werden. Wenn eine
Verzeichnis stimmt mit beiden überein --include-dir und --exclude-dir, ist ausgeschlossen. Es gibt
keine Kurzform für diese Option.
-L, --files-ohne-match
Anstatt Zeilen aus den Dateien auszugeben, geben Sie einfach die Namen der Dateien aus
die keine Zeilen enthalten, die ausgegeben worden wären. Jeder Dateiname ist
einmal in einer separaten Zeile ausgeben.
-l, --files-with-matches
Anstatt Zeilen aus den Dateien auszugeben, geben Sie einfach die Namen der Dateien aus
Zeilen enthalten, die ausgegeben worden wären. Jeder Dateiname wird einmal ausgegeben, auf
eine separate Zeile. Die Suche wird normalerweise beendet, sobald eine passende Zeile in gefunden wird
eine Datei. Wenn jedoch die -c (count) Option wird ebenfalls verwendet, Matching geht weiter in
um die richtige Anzahl zu erhalten, und die Dateien mit mindestens einer Übereinstimmung
werden zusammen mit ihrer Anzahl aufgeführt. Verwenden dieser Option mit -c ist ein Weg von
Unterdrücken der Auflistung von Dateien ohne Übereinstimmungen.
--Etikett=Name
Diese Option liefert einen Namen, der für die Standardeingabe verwendet wird, wenn Dateinamen
werden ausgegeben. Wenn nicht angegeben, wird "(Standardeingabe)" verwendet. Es gibt keine kurze
Formular für diese Option.
--line-buffered
Wenn diese Option angegeben ist, wird die Eingabe zeilenweise gelesen und verarbeitet, und die
Ausgabe wird nach jedem Schreiben geleert. Standardmäßig wird die Eingabe in großen Blöcken gelesen.
es sei denn pcregrep kann feststellen, dass es von einem Terminal liest (das ist
derzeit nur in Unix-ähnlichen Umgebungen möglich). Ausgang zum Terminal ist
normalerweise automatisch vom Betriebssystem gespült. Diese Option kann sein
nützlich, wenn der Ein- oder Ausgang an eine Rohrleitung angeschlossen ist und Sie nicht möchten
pcregrep große Datenmengen zu puffern. Die Verwendung hat jedoch Auswirkungen auf
Leistung, und die -M (mehrzeilige) Option funktioniert nicht mehr.
--line-offsets
Anstatt übereinstimmende Zeilen oder Teile von Zeilen anzuzeigen, zeigen Sie jede Übereinstimmung als Zeile an
Zahl, der Versatz vom Zeilenanfang und eine Länge. Die Zeilennummer ist
durch einen Doppelpunkt beendet (wie üblich; siehe die -n Option) und der Versatz und die Länge
werden durch ein Komma getrennt. In diesem Modus wird kein Kontext angezeigt. Das heißt, die -A,
-B und -C Optionen werden ignoriert. Wenn es mehr als eine Übereinstimmung in einer Zeile gibt, wird jede
davon wird gesondert ausgewiesen. Diese Option schließt sich gegenseitig aus mit --Datei-
Versätze und --only-matching.
- Gebietsschema=Gebietsschema-Name
Diese Option gibt ein Gebietsschema an, das für den Mustervergleich verwendet werden soll. Es überschreibt die
Wert in der LC_ALL or LC_CTYPE Umgebungsvariablen. Wenn kein Gebietsschema vorhanden ist
angegeben, wird der Standardwert der PCRE-Bibliothek (normalerweise das Gebietsschema "C") verwendet. Es gibt
keine Kurzform für diese Option.
--match-limit=Anzahl
Die Verarbeitung einiger Muster für reguläre Ausdrücke kann sehr viel
Speicher, was in manchen Fällen zu einem Programmabsturz führt, wenn nicht genügend vorhanden ist.
Bei anderen Mustern kann es sehr lange dauern, bis alle möglichen Übereinstimmungen gefunden sind
Saiten. Die pcre_exec() Funktion, die aufgerufen wird von pcregrep um das Matching zu machen
hat zwei Parameter, die die verwendeten Ressourcen einschränken können.
Die --match-limit Option bietet eine Möglichkeit, die Ressourcennutzung zu begrenzen, wenn
Verarbeitungsmuster, die nicht übereinstimmen, aber eine sehr große
viele Möglichkeiten in ihren Suchbäumen. Das klassische Beispiel ist ein Muster
die verschachtelte unbegrenzte Wiederholungen verwendet. Intern verwendet PCRE eine Funktion namens
Spiel() die es wiederholt (manchmal rekursiv) aufruft. Die Grenze von
--match-limit hängt davon ab, wie oft diese Funktion während a . aufgerufen wird
Match, was dazu führt, dass die Menge an Backtracking begrenzt wird, die dauern kann
statt.
Die --Rekursionslimit Option ist ähnlich wie --match-limit, aber statt
Begrenzung der Gesamtzahl der Male, die Spiel() heißt, es begrenzt die Tiefe
von rekursiven Aufrufen, was wiederum den nutzbaren Speicher begrenzt.
Die Rekursionstiefe ist kleiner als die Gesamtzahl der Aufrufe, weil
nicht alle Anrufe an Spiel() sind rekursiv. Diese Grenze ist nur von Nutzen, wenn sie eingestellt ist
kleiner als --match-limit.
Für diese Optionen gibt es keine Kurzformen. Die Standardeinstellungen sind angegeben
wenn die PCRE-Bibliothek kompiliert wird, wobei der Standardwert 10 Millionen beträgt.
-M, --mehrzeilig
Lassen Sie zu, dass Muster mit mehr als einer Zeile übereinstimmen. Wenn diese Option gegeben ist, werden Muster
kann sinnvollerweise literale Zeilenumbrüche und interne Vorkommen von ^ . enthalten
und $-Zeichen. Die Ausgabe für ein erfolgreiches Match kann aus mehr als einem bestehen
Zeile, deren letzte diejenige ist, in der das Spiel endete. Wenn die Übereinstimmung
string endet mit einer Newline-Sequenz, die Ausgabe endet am Ende dieser Zeile.
Wenn diese Option gesetzt ist, wird die PCRE-Bibliothek im "Multiline"-Modus aufgerufen. Dort
ist eine Begrenzung für die Anzahl der Zeilen, die abgeglichen werden können, auferlegt durch die Art und Weise, dass
pcregrep puffert die Eingabedatei beim Scannen. Jedoch, pcregrep versichert dass
mindestens 8K Zeichen oder der Rest des Dokuments (je nachdem, was kürzer ist)
sind für den Vorwärtsabgleich verfügbar, und in ähnlicher Weise sind die vorherigen 8K-Zeichen (oder
alle vorherigen Zeichen, wenn weniger als 8K) sind garantiert verfügbar
für Lookbehin-Behauptungen. Diese Option funktioniert nicht, wenn die Eingabe zeilenweise gelesen wird
Linie (siehe --line-buffered.)
-N Zeilenumbruch-Typ, --Neue Zeile=Zeilenumbruch-Typ
Die PCRE-Bibliothek unterstützt fünf verschiedene Konventionen zur Angabe der Enden von
Linien. Es sind die Einzelzeichenfolgen CR (Carriage Return) und LF
(Zeilenvorschub), die zweistellige Zeichenfolge CRLF, eine "anycrlf"-Konvention, die
erkennt einen der drei vorhergehenden Typen und eine "beliebige" Konvention, in der
Es wird angenommen, dass jede Unicode-Zeilenendsequenz eine Zeile beendet. Die Unicode-Sequenzen
sind die drei gerade erwähnten, plus VT (vertikaler Tabulator, U+000B), FF (Seitenvorschub,
U+000C), NEL (nächste Zeile, U+0085), LS (Zeilentrenner, U+2028) und PS (Absatz
Trennzeichen, U+2029).
Beim Erstellen der PCRE-Bibliothek wird eine standardmäßige Zeilenendesequenz angegeben.
Dies ist normalerweise die Standardsequenz für das Betriebssystem. Wenn nicht
anders durch diese Option angegeben, pcregrep verwendet den Standardwert der Bibliothek. Die
mögliche Werte für diese Option sind CR, LF, CRLF, ANYCRLF oder ANY. Das macht es
möglich zu verwenden pcregrep um Dateien zu scannen, die aus anderen Umgebungen stammen
ohne ihre Zeilenenden ändern zu müssen. Wenn die gescannten Daten
stimmt nicht mit der durch diese Option festgelegten Konvention überein, pcregrep kann sich in verhalten
seltsame Wege. Beachten Sie, dass diese Option nicht für Dateien gilt, die durch das -f,
--ausgeschlossen von oder --einschließen-von Optionen, von denen erwartet wird, dass sie die
Standard-Newline-Sequenz des Betriebssystems.
-n, --Zeilennummer
Stellen Sie vor jeder Ausgabezeile ihre Zeilennummer in der Datei, gefolgt von einem Doppelpunkt für
übereinstimmende Zeilen oder einen Bindestrich für Kontextzeilen. Wenn der Dateiname auch
ausgegeben wird, steht es vor der Zeilennummer. Diese Option wird erzwungen, wenn --line-offsets is
benutzt.
--nein-Jit Wenn die PCRE-Bibliothek mit Unterstützung für die Just-in-Time-Kompilierung erstellt wurde (was
beschleunigt das Abgleichen), pcregrep nutzt dies automatisch, es sei denn, es war
zur Build-Zeit explizit deaktiviert. Diese Option kann verwendet werden, um die Verwendung von zu deaktivieren
JIT zur Laufzeit. Es wird zum Testen und zur Umgehung von Problemen bereitgestellt. Es
sollte bei normalem Gebrauch niemals benötigt werden.
-o, --only-matching
Zeigen Sie nur den Teil der Linie an, der einem Muster entspricht, anstatt der gesamten Linie.
In diesem Modus wird kein Kontext angezeigt. Das heißt, die -A, -B und -C Optionen sind
ignoriert. Wenn es mehr als eine Übereinstimmung in einer Zeile gibt, wird jede von ihnen angezeigt
separat. Wenn -o wird kombiniert mit -v (Invertieren Sie den Sinn der Übereinstimmung, um zu finden
nicht übereinstimmende Zeilen), wird keine Ausgabe generiert, aber der Returncode gesetzt
passend. Wenn der übereinstimmende Teil der Zeile leer ist, wird nichts ausgegeben
es sei denn, der Dateiname oder die Zeilennummer werden gedruckt. In diesem Fall sind sie
in einer ansonsten leeren Zeile angezeigt. Diese Option schließt sich gegenseitig aus mit --Datei-
Versätze und --line-offsets.
-oAnzahl, --only-matching=Anzahl
Nur den Teil der Linie anzeigen, der mit den einfangenden Klammern des übereinstimmt
gegebene Nummer. Bis zu 32 einfangende Klammern werden unterstützt und -o0 ist
entspricht -o ohne Nummer. Da diese Optionen ohne ein . gegeben werden können
Argument (siehe oben), wenn ein Argument vorhanden ist, muss es im selben angegeben werden
Shell-Element, zum Beispiel -o3 oder --only-matching=2. Die Kommentare für die
oben genannten nicht argumentativen Fall gelten auch für diesen Fall. Wenn die angegebene Aufnahme
Klammern sind im Muster nicht vorhanden oder wurden im Match nicht gesetzt, nichts
wird ausgegeben, es sei denn, der Dateiname oder die Zeilennummer werden gedruckt.
Wird diese Option mehrfach angegeben, werden mehrere Teilstrings ausgegeben, im
bestellen die optionen sind gegeben. Zum Beispiel verursacht -o3 -o1 -o3 die Teilzeichenfolgen
durch Einfangen der Klammern 3 und 1 abgeglichen und dann wieder 3 ausgegeben werden. Von
Standardmäßig gibt es kein Trennzeichen (siehe aber die nächste Option).
--om-Trennzeichen=Text
Geben Sie eine Trennzeichenfolge für das mehrfache Vorkommen von an -o. Die Vorgabe ist ein
leerer String. Trennstränge werden nie gefärbt.
-q, --ruhig
Arbeiten Sie ruhig, d. h. zeigen Sie nur Fehlermeldungen an. Der Exit-Status
gibt an, ob Übereinstimmungen gefunden wurden oder nicht.
-r, - rekursiv
Wenn ein angegebener Pfad ein Verzeichnis ist, scannen Sie die darin enthaltenen Dateien rekursiv
Notiz von irgendwelchen --enthalten und --ausschließen die Einstellungen. Standardmäßig wird ein Verzeichnis gelesen als
eine normale Datei; in einigen Betriebssystemen führt dies zu einem sofortigen Dateiende.
Diese Option ist eine Abkürzung für die Einstellung der -d Option zum "Wiederholen".
--Rekursionslimit=Anzahl
Weitere Informationen finden Sie auch in den --match-limit zu teilen.
-s, --keine Nachrichten
Unterdrücken Sie Fehlermeldungen über nicht vorhandene oder nicht lesbare Dateien. Solche Dateien sind
leise übersprungen. Der Returncode ist jedoch immer noch 2, auch wenn Übereinstimmungen gefunden wurden
in anderen Dateien.
-u, --utf-8
Arbeiten Sie im UTF-8-Modus. Diese Option ist nur verfügbar, wenn PCRE kompiliert wurde
mit UTF-8-Unterstützung. Alle Muster (einschließlich der für alle --ausschließen und
--enthalten Optionen) und alle gescannten Betreffzeilen müssen gültige Zeichenfolgen sein
von UTF-8-Zeichen.
-V, --Version
Schreiben Sie die Versionsnummern von pcregrep und die PCRE-Bibliothek zum Standard
ausgeben und dann beenden. Alles andere auf der Befehlszeile wird ignoriert.
-v, --invert-match
Kehren Sie den Sinn der Übereinstimmung um, so dass Linien, die nicht passen zu einem der
Muster sind diejenigen, die gefunden werden.
-w, --word-regex, --word-regexp
Erzwingen Sie, dass die Muster nur mit ganzen Wörtern übereinstimmen. Dies ist äquivalent zu \b at
Anfang und Ende des Musters. Diese Option gilt nur für die Muster, die
mit dem Inhalt von Dateien abgeglichen werden; es gilt nicht für Muster
angegeben von einem der --enthalten or --ausschließen nach.
-x, --line-regex, --line-regexp
Erzwingen, dass die Muster verankert werden (jedes muss am Anfang von mit der Übereinstimmung beginnen)
eine Zeile) und verlangen außerdem, dass sie mit ganzen Zeilen übereinstimmen. Das ist gleichwertig
^ und $-Zeichen am Anfang und Ende jeder alternativen Verzweigung in . zu haben
jedes Muster. Diese Option gilt nur für die Muster, mit denen abgeglichen wird
der Inhalt von Dateien; es gilt nicht für Muster, die von einem der
--enthalten or --ausschließen nach.
VARIABLEN
Die Umgebungsvariablen LC_ALL und LC_CTYPE werden in dieser Reihenfolge auf ein Gebietsschema untersucht.
Der zuerst eingestellte Wert wird verwendet. Dies kann überschrieben werden durch die - Gebietsschema Möglichkeit. Wenn nein
locale gesetzt ist, wird die Standardeinstellung der PCRE-Bibliothek (normalerweise die Locale "C") verwendet.
NEULINIEN
Die -N (--Neue Zeile) Option erlaubt pcregrep um Dateien mit unterschiedlichen Newline-Konventionen zu scannen
von der Standardeinstellung. Alle Teile der Eingabedateien, die in die Standardausgabe geschrieben werden, sind
identisch kopiert werden, mit allen Zeilenumbrüchen, die sie in der Eingabe haben. Allerdings ist die
Die Einstellung dieser Option hat keinen Einfluss auf die Interpretation von Dateien, die durch die -f,
--ausgeschlossen von oder --einschließen-von Optionen, von denen angenommen wird, dass sie die des Betriebssystems verwenden
Standard-Neuzeilenreihenfolge, noch beeinflusst sie die Art und Weise, in der pcregrep schreibt
Informationsnachrichten zu den Standardfehler- und Ausgabeströmen. Für diese verwendet es die
Zeichenfolge "\n", um Zeilenumbrüche anzuzeigen, die sich auf die CI/O-Bibliothek verlassen, um dies in ein umzuwandeln
entsprechende Reihenfolge.
OPTIONAL KOMPATIBILITÄT
Viele der Kurz- und Langformen von pcregrep's Optionen sind die gleichen wie in der GNU grep
Programm. Jede lange Option des Formulars --xxx-Regexp (GNU-Terminologie) ist auch als
--xxx-regex (PCRE-Terminologie). Allerdings ist die --Dateiliste, --file-offsets, --include-dir,
--line-offsets, - Gebietsschema, --match-limit, -M, --mehrzeilig, -N, --Neue Zeile, --om-Trennzeichen,
--Rekursionslimit, -u und --utf-8 Optionen sind spezifisch für pcregrep, ebenso wie die Verwendung von
--only-matching Option mit einer Nummer in Klammern.
Obwohl die meisten gängigen Optionen auf die gleiche Weise funktionieren, unterscheiden sich einige in pcregrep.
So befasst sich beispielsweise die --enthalten Das Argument der Option ist ein Glob für GNU grep, aber ein regelmäßiger
Ausdruck für pcregrep. Wenn beide -c und -l Optionen sind gegeben, GNU grep listet nur Datei
Namen, ohne Zählung, aber pcregrep gibt die Zählung an.
OPTIONAL MIT DATEN
Es gibt vier verschiedene Möglichkeiten, eine Option mit Daten anzugeben. Wenn eine kurze
Formularoption verwendet wird, können die Daten sofort oder (mit einer Ausnahme) im nächsten folgen
Befehlszeilenelement. Zum Beispiel:
-f/etwas/Datei
-f /irgendeine/Datei
Die Ausnahme ist die -o Option, die mit oder ohne Daten erscheinen kann. Deswegen,
wenn Daten vorhanden sind, müssen sie sofort im selben Element folgen, zum Beispiel -o3.
Wenn eine Langformoption verwendet wird, erscheinen die Daten möglicherweise im selben Befehlszeilenelement,
durch ein Gleichheitszeichen getrennt, oder (mit zwei Ausnahmen) kann es im nächsten vorkommen
Befehlszeilenelement. Zum Beispiel:
--file=/some/file
--file /some/file
Beachten Sie jedoch, dass, wenn Sie einen mit ~ beginnenden Dateinamen als Daten in einer Shell angeben möchten
Befehl und lassen Sie die Shell ~ in ein Home-Verzeichnis erweitern, müssen Sie den Dateinamen trennen
aus der Option, weil die Shell ~ nicht speziell behandelt, es sei denn, es ist am Anfang von
ein Gegenstand.
Die Ausnahmen von den oben genannten sind die --Farbe (oder --color) und --only-matching Optionen, für
wobei die Daten optional sind. Wenn eine dieser Optionen Daten enthält, müssen sie in . angegeben werden
die erste Form mit einem Gleichheitszeichen. Andernfalls pcregrep wird davon ausgehen, dass es keine hat
Daten.
PASSEND FEHLER
Es ist möglich, einen regulären Ausdruck bereitzustellen, der sehr lange braucht, bis er nicht übereinstimmt
bestimmte Zeilen. Solche Muster beinhalten normalerweise verschachtelte unbestimmte Wiederholungen, zum Beispiel:
(a+)*\d beim Vergleich mit einer Zeile von a's ohne letzte Ziffer. Die PCRE-Matching-Funktion
hat ein Ressourcenlimit, das unter diesen Umständen zum Abbruch führt. Wenn das passiert,
pcregrep gibt eine Fehlermeldung aus und die Zeile, die das Problem verursacht hat, an den Standard
Fehlerstrom. Wenn es mehr als 20 solcher Fehler gibt, pcregrep gibt auf.
Die --match-limit Option pcregrep kann verwendet werden, um das Gesamtressourcenlimit festzulegen; dort
ist eine zweite Option namens --Rekursionslimit das setzt eine Grenze für die Speichermenge
(normalerweise Stack), die verwendet wird (siehe die Diskussion dieser Optionen oben).
DIAGNOSE
Der Exit-Status ist 0, wenn Übereinstimmungen gefunden wurden, 1, wenn keine Übereinstimmungen gefunden wurden, und 2 für Syntax
Fehler, überlange Zeilen, nicht vorhandene oder unzugängliche Dateien (auch wenn Übereinstimmungen gefunden wurden in
andere Dateien) oder zu viele Übereinstimmungsfehler. Verwendung der -s Option zum Unterdrücken von Fehlermeldungen
über unzugängliche Dateien hat keinen Einfluss auf den Rückkehrcode.
Verwenden Sie pcregrep online mit den onworks.net-Diensten