Dies ist der Befehl pcre2grep, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
pcre2grep – ein grep mit Perl-kompatiblen regulären Ausdrücken.
ZUSAMMENFASSUNG
pcre2grep [Optionen] [lang Optionen] [Muster] [Pfad1 Pfad2 ...]
BESCHREIBUNG
pcre2grep durchsucht Dateien nach Zeichenmustern, genau wie andere grep-Befehle
tun, aber es verwendet die PCRE2-Bibliothek für reguläre Ausdrücke, um Muster zu unterstützen, die dies tun
kompatibel mit den regulären Ausdrücken von Perl 5. Siehe pcre2syntax(3) für eine schnelle
Referenzzusammenfassung der Mustersyntax, oder pcre2pattern(3) für eine vollständige Beschreibung des
Syntax und Semantik der regulären Ausdrücke, die PCRE2 unterstützt.
Muster, ob auf der Kommandozeile oder in einer separaten Datei bereitgestellt, werden ohne
Trennzeichen. Zum Beispiel:
pcre2grep 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, pcre2grep liest die Standardeingabe. Die Standardeingabe kann auch
durch einen Namen referenziert werden, der aus einem einzelnen Bindestrich besteht. Zum Beispiel:
pcre2grep some-pattern file1 - file3
Eingabedateien werden zeilenweise durchsucht. Standardmäßig ist jede Zeile, die mit einem Muster übereinstimmt
in die Standardausgabe kopiert, und wenn mehr als eine Datei vorhanden ist, wird der Dateiname ausgegeben
am Anfang jeder Zeile, gefolgt von einem Doppelpunkt. Es gibt jedoch Optionen, die dies können
ändern wie pcre2grep verhält. Insbesondere die -M Option ermöglicht die Suche nach
Zeichenfolgen, die Zeilengrenzen überspannen. Was eine Liniengrenze definiert, wird durch gesteuert -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 pcre2grep wird erstellt, wobei der Standardwert 20 KB beträgt. A
Es wird ein Speicherblock verwendet, der dreimal so groß ist (um eine Pufferung „vorher“ und „nachher“ 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, pcre2grep verwendet den Wert, um a . festzulegen
locale beim Aufruf der PCRE2-Bibliothek. Der - Gebietsschema Option kann verwendet werden, um dies zu überschreiben.
SUPPORT FÜR KOMPRIMIERT DATEIEN
Es ist möglich zu kompilieren pcre2grep 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 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, pcre2grep 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, pcre2grep 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, und sie werden übersprungen
Dies führt zu einer Ausgabe oder beeinflusst den Rückkehrcode.
--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 Zeilen aus den Dateien aus, die gescannt werden. Geben Sie stattdessen die aus
Anzahl der Übereinstimmungen (oder Nichtübereinstimmungen, wenn -v verwendet wird), was andernfalls der Fall wäre
führte dazu, dass Linien angezeigt wurden. Standardmäßig ist diese Anzahl mit der Anzahl von identisch
unterdrückte Zeilen, aber wenn die -M (mehrzeilige) Option wird verwendet (ohne -v), dort
Möglicherweise werden mehr Zeilen unterdrückt als es Übereinstimmungen gibt.
Sind keine Zeilen ausgewählt, wird die Zahl Null ausgegeben. Wenn mehrere Dateien vorhanden sind
Beim Scannen wird jeweils eine Zählung ausgegeben. Wenn jedoch die --Dateien-mit-
Streichhölzer Option wird ebenfalls verwendet, nur die Dateien, deren Anzahl größer als Null ist
sind aufgeführt. 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 pcre2grep muss nach allen möglichen Übereinstimmungen in einer Zeile suchen, nicht nur
eins, um sie alle einzufärben.
Die verwendete Farbe kann durch Setzen der Umgebungsvariablen festgelegt werden
PCRE2GREP_COLOUR oder PCRE2GREP_COLOR. Der Wert dieser Variablen sollte a sein
Zeichenfolge aus zwei Zahlen, getrennt durch ein Semikolon. Sie werden direkt kopiert
die Steuerzeichenfolge zum Festlegen der Farbe auf einem Terminal, es liegt also bei Ihnen
Es liegt in der Verantwortung, dafür zu sorgen, dass sie einen Sinn ergeben. Wenn keine der Umgebung
Variablen festgelegt ist, ist der Standardwert „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,
pcre2grep findet X, wenn es vorhanden ist, auch wenn es Y in der Zeile folgt. Es findet Y
nur wenn in der Zeile kein X steht. 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 --Dateilisteoder durch Scannen eines Verzeichnisses. Das Muster ist ein PCRE2
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 PCRE2-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
Zeile wird ausgegeben, wenn eines der Muster damit ü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 Einbeziehung des Dateinamens am Anfang der Ausgabezeilen bei der Suche
eine einzelne Datei. Standardmäßig wird der Dateiname in diesem Fall nicht angezeigt. Für
Bei übereinstimmenden Zeilen folgt auf den Dateinamen ein Doppelpunkt. für Kontextzeilen, a
Es wird ein Bindestrich-Trennzeichen verwendet. Wenn auch eine Zeilennummer ausgegeben wird, folgt diese
Dateiname. Wenn das -M Die Option bewirkt, dass ein Muster nur mit mehr als einer Zeile übereinstimmt
Dem ersten geht der Dateiname voran.
-h, --no-Dateiname
Unterdrücken Sie die Ausgabedateinamen, wenn Sie mehrere Dateien durchsuchen. Standardmäßig Datei
Namen werden angezeigt, wenn mehrere Dateien durchsucht werden. Für passende Zeilen die Datei
Auf den Namen folgt ein Doppelpunkt. Für Kontextzeilen wird ein Bindestrich-Trennzeichen verwendet. Wenn
Es wird auch eine Zeilennummer ausgegeben, diese folgt dem 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 Binärdateien ignorieren. Dies entspricht --Binärdateien=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 PCRE2-Ausdruck und wird mit dem abgeglichen
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
Muster ist ein regulärer PCRE2-Ausdruck und wird mit dem endgültigen abgeglichen
Bestandteil des Verzeichnisnamens, nicht der gesamte Pfad. Der -F, -w und -x Optionen
gelten nicht für dieses Muster. Die Option kann beliebig oft gegeben werden. Wenn ein
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 pcre2grep 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
pcre2grep 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 die Standardeinstellung der PCRE2-Bibliothek (normalerweise das Gebietsschema „C“) verwendet. Dort
ist 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 pcre2_match() Funktion, die aufgerufen wird von pcre2grep um das zu tun
Matching verfügt über zwei Parameter, die die verwendeten Ressourcen begrenzen 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
das verschachtelte unbegrenzte Wiederholungen verwendet. Intern verwendet PCRE2 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 PCRE2-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
Linie. Das erste ist die Zeile, in der das Spiel begonnen hat, und das letzte ist die Zeile
in dem das Spiel endete. Wenn die übereinstimmende Zeichenfolge mit einer Zeilenumbruchsequenz endet, wird die
Die Ausgabe endet am Ende dieser Zeile.
Wenn diese Option gesetzt ist, wird die PCRE2-Bibliothek im „Multiline“-Modus aufgerufen.
Aber, pcre2grep verarbeitet die Eingabe weiterhin Zeile für Zeile. Der Unterschied ist
dass eine übereinstimmende Zeichenfolge über das Ende einer Zeile hinausgehen und auf einem oder fortgesetzt werden kann
weitere nachfolgende Zeilen. Die Newline-Sequenz muss als Teil der übereinstimmen
Muster. Um beispielsweise den Ausdruck „regulärer Ausdruck“ in einer Datei zu finden, wo
„regulär“ könnte am Ende einer Zeile und „Ausdruck“ am Anfang stehen
In der nächsten Zeile könnten Sie diesen Befehl verwenden:
pcre2grep -M 'regulärer\s+Ausdruck'
Die \s-Escape-Sequenz entspricht jedem Leerzeichen, einschließlich Zeilenumbrüchen.
und wird von + gefolgt, um den nachgestellten Leerraum in der ersten Zeile als anzupassen
sowie möglicherweise die Handhabung einer zweistelligen Newline-Sequenz.
Die Anzahl der Zeilen, die abgeglichen werden können, ist übrigens begrenzt
zur Abwicklung, Integrierung, Speicherung und pcre2grep puffert die Eingabedatei beim Scannen. Jedoch, pcre2grep sorgt
dass mindestens 8K Zeichen oder der Rest der Datei (je nachdem, welcher Wert 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 Lookbehind-Behauptungen. Der -M Option funktioniert nicht, wenn die Eingabe eine Lesezeile ist
zeilenweise (vgl --line-buffered.)
-N Zeilenumbruch-Typ, --Neue Zeile=Zeilenumbruch-Typ
Die PCRE2-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 PCRE2-Bibliothek wird eine Standardzeilenendsequenz angegeben.
Dies ist normalerweise die Standardsequenz für das Betriebssystem. Wenn nicht
anders durch diese Option angegeben, pcre2grep 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 pcre2grep 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, pcre2grep 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
passende Zeilen oder einen Bindestrich für Kontextzeilen. Wenn der Dateiname auch vorhanden ist
Bei der Ausgabe steht es vor der Zeilennummer. Wenn das -M Option bewirkt, dass ein Muster erstellt wird
Wenn mehrere Zeilen übereinstimmen, wird nur der ersten die Zeilennummer vorangestellt. Das
Option ist erzwungen, wenn --line-offsets wird eingesetzt.
--nein-Jit Wenn die PCRE2-Bibliothek mit Unterstützung für Just-in-Time-Kompilierung erstellt wird (was
beschleunigt das Abgleichen), pcre2grep 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, sofern nicht der Dateiname oder die Zeilennummer ausgegeben werden.
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 PCRE2 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 pcre2grep und die PCRE2-Bibliothek an den 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
dazu, ^- und $-Zeichen am Anfang und Ende jeder alternativen obersten Ebene zu haben
Verzweigung in jedem Muster. Diese Option gilt nur für die Muster, die vorhanden sind
mit dem Inhalt von Dateien abgeglichen; es gilt nicht für die angegebenen Muster
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
Wenn das Gebietsschema festgelegt ist, wird die Standardeinstellung der PCRE2-Bibliothek (normalerweise das Gebietsschema „C“) verwendet.
NEULINIEN
Die -N (--Neue Zeile) Option erlaubt pcre2grep um Dateien mit unterschiedlichen Zeilenumbrüchen zu scannen
Konventionen aus der Standardeinstellung. Alle Teile der Eingabedateien, die in geschrieben werden
Die Standardausgabe wird identisch kopiert, mit den darin enthaltenen Zeilenumbrüchen
Eingang. Die Einstellung dieser Option hat jedoch keinen Einfluss auf die Interpretation von Dateien
angegeben durch die -f, --ausgeschlossen von oder --einschließen-von Optionen, von denen angenommen wird, dass sie verwendet werden
Die Standard-Zeilenumbruchsequenz des Betriebssystems ändert sich nicht und hat auch keinen Einfluss auf die Art und Weise, wie sie ausgeführt wird
pcre2grep Schreibt Informationsmeldungen in die Standardfehler- und Ausgabestreams. Für
In diesen Fällen verwendet es die Zeichenfolge „\n“, um Zeilenumbrüche anzuzeigen, und verlässt sich dabei auf die CI/O-Bibliothek
Konvertieren Sie dies in eine geeignete Reihenfolge.
OPTIONAL KOMPATIBILITÄT
Viele der Kurz- und Langformen von pcre2grep'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 (PCRE2-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 pcre2grep, 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 pcre2grep.
So befasst sich beispielsweise die --enthalten Das Argument der Option ist ein Glob für GNU grep, aber ein regelmäßiger
Ausdruck für pcre2grep. Wenn beide -c und -l Es werden Optionen angegeben, nur GNU-Grep-Listen
Dateinamen, ohne Zählungen, aber pcre2grep gibt auch die Zählungen 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 pcre2grep 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 ohne Endziffer. Das PCRE2-Matching
Die Funktion hat eine Ressourcenbeschränkung, die dazu führt, dass sie unter diesen Umständen abgebrochen wird. Wenn dies
das passiert, pcre2grep gibt eine Fehlermeldung und die Zeile aus, die das Problem verursacht hat
Standardfehlerstrom. Liegen mehr als 20 solcher Fehler vor, pcre2grep gibt auf.
Die --match-limit Option pcre2grep 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 pcre2grep online über die Dienste von onworks.net