Inhaltsverzeichnis
1.. Grundlegendes gegen erweiterte reguläre Ausdrücke verstehen
2. praktisches Muster mit Regex übereinstimmen
Passen Sie die Wortgrenzen an
Übereinstimmung Leitungen, die mit bestimmten Mustern beginnen/enden
Passen Sie mehrere Muster an (Wechsel)
3. Charakterklassen und Quantifizierer
Verwenden Sie vordefinierte Zeichenklassen
Quantifizierer zur Wiederholung
4. Erweiterte Optionen, die die Regex -Verwendung verbessern
5. Häufige Fallstricke und Tipps
Heim System-Tutorial LINUX Fortgeschrittene 'Grep' -Nutzung mit regulären Ausdrücken unter Linux

Fortgeschrittene 'Grep' -Nutzung mit regulären Ausdrücken unter Linux

Aug 13, 2025 pm 12:51 PM
Reguläre Ausdrücke grep

Verwenden Sie -e für erweiterte reguläre Ausdrücke, um die Mustersyntax mit,?, | Und () zu vereinfachen; 2. Wenden Sie Wortgrenzen mit \ b oder posix [[:]]/[:>:]] an, um ganze Wörter zu entsprechen; 3. Ankermuster mit ^ und $, um Ziellinienanfierungen und Endungen zu zielen; 4. Kombinieren Sie mehrere Muster mit | in ERE für logisch oder Matching; 5. Hebel -POSIX -Charakterklassen wie [[: Ziffer:]] und Quantifizierer wie *,,, und {n, m} für eine präzise Wiederholungskontrolle; 6. Verbessern Sie die Suche mit Optionen wie -i für Fallunempfindlichkeit, -V, um Übereinstimmungen zu invertieren, -n zum Anzeigen von Zeilennummern, -R für eine rekursive Verzeichnissuche, -o, um nur übereinstimmende Teile zu extrahieren, und -p für Perl -kompatible Regex, wenn verfügbar; 7. Zitieren Sie immer Muster, um die Expansion von Shells zu verhindern, die Muster inkrementell zu testen, verwenden Sie -Color = immer für die Sichtbarkeit, und kombinieren Sie GREP mit Tools wie Sortier und Uniq für die erweiterte Textverarbeitung, um effiziente und genaue Ergebnisse in Aufgaben der Protokollanalyse, Code -Überprüfung und Systemverwaltung sicherzustellen.

Fortgeschrittene

Die Verwendung von grep mit regulären Ausdrücken unter Linux geht weit über einfache Textsuche hinaus. Während die grundlegende grep -Nutzung buchstäbliche Saiten finden kann, entsperren Sie sie mit regulären Ausdrücken (REGEX), die leistungsstarke Musteranpassungsfunktionen für die Protokollanalyse, die Codeüberprüfung und die Systemverwaltung von entscheidender Bedeutung sind. Hier erfahren Sie, wie Sie fortschrittliche grep -Funktionen effektiv nutzen können.

Fortgeschrittene

1.. Grundlegendes gegen erweiterte reguläre Ausdrücke verstehen

grep unterstützt zwei Haupt -Regex -Aromen: Grundlegende reguläre Ausdrücke (BRE) und erweiterte reguläre Ausdrücke (ERE) .

Standardmäßig verwendet grep BRE, wo Sonderzeichen mögen , ? , | , ( , und ) werden als Literale behandelt, es sei denn, sie entkommen. Verwenden Sie das -E -ERE (oder egrep ), um ERE zu verwenden und Backslash -Unordnung zu vermeiden:

Fortgeschrittene
 # Übereinstimmung Zeilen mit "Fehler", gefolgt von einer oder mehreren Ziffern
Grep "Fehler [0-9] \" logfile.txt # BRE: Muss entkommen werden
Grep -e "Fehler [0-9]" logfile.txt # Ere: funktioniert direkt

Verwenden Sie -E für sauberere, lesbarere Muster -insbesondere im Umgang mit Wechsel oder Gruppierung.


2. praktisches Muster mit Regex übereinstimmen

Passen Sie die Wortgrenzen an

Verwenden Sie \b , um nur ganze Wörter zu entsprechen. Dies vermeidet teilweise Übereinstimmungen:

Fortgeschrittene
 grep '\ broot \ b' /etc /passwd

Dies findet Zeilen, die das genaue Wort "root" enthalten, nicht "Rootuser" oder "Sendung".

Hinweis : Wortgrenzen ( \b ) werden in den meisten grep -Versionen unterstützt, verwenden jedoch für strenge POSIX -Konformität [[:<:]] und [[:>:]] :

 grep &#39;[: <:]] root [[:>:]]&#39; /etc /passwd

Übereinstimmung Leitungen, die mit bestimmten Mustern beginnen/enden

Verankern Sie Ihre Muster mit ^ und $ :

 # Zeilen beginnen mit "Warnung"
Grep &#39;^Warnung&#39; syslog.log

# Zeilen enden mit ".conf"
grep &#39;\ .conf $&#39; config_list.txt

# Leere Zeilen (beginnen und enden mit nichts)
grep &#39;^$&#39; Datei.txt

Passen Sie mehrere Muster an (Wechsel)

Verwendung | in ere, um das eine oder andere Muster zu entsprechen:

 Grep -e &#39;Fatal | Fehler | Critical&#39; System.log

Dies findet alle Zeilen, die eines der drei Schlüsselwörter enthalten.

Sie können Alternativen gruppieren:

 grep -e &#39;(Warnung | Hinweis)&#39;/var/log/messages

3. Charakterklassen und Quantifizierer

Verwenden Sie vordefinierte Zeichenklassen

Verwenden Sie anstelle von [0-9a-zA-Z] POSIX-Klassen für Klarheit und Portabilität:

  • [[:digit:]] → Ziffern
  • [[:alpha:]] → Buchstaben
  • [[:alnum:]] → Buchstaben und Ziffern
  • [[:space:]] → Whitespace
  • [[:punct:]] → Interpunktion

Beispiel:

 # Suchen Sie Zeilen mit nur Buchstaben und Räumen
grep &#39;^[[: Alpha:] [: Raum:]]*$&#39; Notes.txt

Quantifizierer zur Wiederholung

Kontrolle, wie oft ein Muster erscheint:

  • * → 0 oder mehr
  • → 1 oder mehr (Verwendung mit -E )
  • ? → 0 oder 1 (mit -E )
  • {n,m} → zwischen n und m mal

Beispiele:

 # IP-Adresse Oktett (1-3 Ziffern)
grep -e &#39;[0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3}&#39; Access.Log

# Telefonnummer: 3 Ziffern, Dash, 4 Ziffern
grep -e &#39;[0-9] {3}-[0-9] {4}&#39; contacts.txt

Tipp : Es entkommen Punkte in iPs ( \. ), Um einen Anpassung eines jeden Charakters zu vermeiden.


4. Erweiterte Optionen, die die Regex -Verwendung verbessern

  • -i -Fall-unempfindliche Suche

     grep -i &#39;Fehler&#39; logfile.txt
  • -v -Invert -Match (Zeilen nicht übereinstimmen)

     grep -v &#39;^\ s*$&#39; Datei.txt # leere Zeilen ausschließen
  • -n -Zeilenzahlen anzeigen

     grep -n &#39;timeout&#39; script.sh
  • -r -rekursive Suche durch Verzeichnisse

     grep -re &#39;user_id = [0-9]&#39;/var/www/App/
  • -o -Zeigen Sie nur den passenden Teil (nützlich zum Extrahieren)

     Echo "ID: ABC123, Status: OK" | grep -o &#39;[a-z0-9] \ {6 \}&#39;
    # Ausgabe: ABC123
  • -P -Verwenden Sie Perl-kompatible Regex (falls verfügbar)

     grep -p &#39;\ d {4}-\ d {2}-\ d {2}&#39; file.log # \ d Shorthand für Ziffern

    Hinweis: -P ist nicht posix, sondern auf Linux weit verbreitet.


5. Häufige Fallstricke und Tipps

  • Zitieren Sie immer Ihre Muster, um die Expansion der Hülle zu verhindern:

     grep &#39;[0-9]&#39; Datei # gut
    GREP [0-9] Datei # schlecht: Shell kann als Dateiname erweitert werden [0-9]
  • Testen Sie komplexe Muster Schritt für Schritt: Starten Sie einfach und fügen Sie dann Anker, Gruppen oder Quantifizierer hinzu.

  • Verwenden Sie --color=always , um Übereinstimmungen hervorzuheben:

     grep - -color = immer -e &#39;\ b (Fehler | fehlgeschlagen) \ b&#39; log.txt
  • Kombinieren Sie mit anderen Werkzeugen:

     # Zählen Sie eindeutige Fehlercodes
    grep -oe &#39;Fehler [0-9]&#39; app.log | sortieren | Uniq -c

    Grundsätzlich bedeutet das Beherrschen grep mit Regex zu wissen, wie man Ausdrucksmuster mit den richtigen Optionen kombiniert. Unabhängig davon, ob Sie Protokolle filtern oder Konfigurationsdateien analysieren, machen diese Techniken die Textverarbeitung schneller und genauer. Denken Sie daran: Verwenden Sie -E für den modernen Regex -Stil, zitieren Sie Ihre Muster und verankern Sie es bei Bedarf.

    Das obige ist der detaillierte Inhalt vonFortgeschrittene 'Grep' -Nutzung mit regulären Ausdrücken unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT

Stock Market GPT

KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen? Wie kann ich Zeitstempel mithilfe regulärer Ausdrücke in Go abgleichen? Jun 02, 2024 am 09:00 AM

In Go können Sie reguläre Ausdrücke verwenden, um Zeitstempel abzugleichen: Kompilieren Sie eine Zeichenfolge mit regulären Ausdrücken, z. B. die, die zum Abgleich von ISO8601-Zeitstempeln verwendet wird: ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Verwenden Sie die Funktion regexp.MatchString, um zu überprüfen, ob eine Zeichenfolge mit einem regulären Ausdruck übereinstimmt.

Validierung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Validierung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Mar 21, 2024 am 09:45 AM

Überprüfung regulärer PHP-Ausdrücke: Erkennung des Zahlenformats Beim Schreiben von PHP-Programmen ist es häufig erforderlich, die vom Benutzer eingegebenen Daten zu überprüfen. Eine der häufigsten Überprüfungen besteht darin, zu überprüfen, ob die Daten dem angegebenen Zahlenformat entsprechen. In PHP können Sie reguläre Ausdrücke verwenden, um diese Art der Validierung zu erreichen. In diesem Artikel wird erläutert, wie Sie mithilfe regulärer PHP-Ausdrücke Zahlenformate überprüfen und spezifische Codebeispiele bereitstellen. Schauen wir uns zunächst die allgemeinen Validierungsanforderungen für Zahlenformate an: Ganzzahlen: enthalten nur die Zahlen 0–9, können mit einem Plus- oder Minuszeichen beginnen und enthalten keine Dezimalstellen. Gleitkomma

Wie validiere ich eine E-Mail-Adresse in Golang mithilfe eines regulären Ausdrucks? Wie validiere ich eine E-Mail-Adresse in Golang mithilfe eines regulären Ausdrucks? May 31, 2024 pm 01:04 PM

Um E-Mail-Adressen in Golang mithilfe regulärer Ausdrücke zu validieren, führen Sie die folgenden Schritte aus: Verwenden Sie regexp.MustCompile, um ein reguläres Ausdrucksmuster zu erstellen, das gültigen E-Mail-Adressformaten entspricht. Verwenden Sie die MatchString-Funktion, um zu überprüfen, ob eine Zeichenfolge mit einem Muster übereinstimmt. Dieses Muster deckt die meisten gültigen E-Mail-Adressformate ab, einschließlich: Lokale Benutzernamen können Buchstaben, Zahlen und Sonderzeichen enthalten: !.#$%&'*+/=?^_{|}~-`Domänennamen müssen mindestens Eins enthalten Buchstabe, gefolgt von Buchstaben, Zahlen oder Bindestrichen. Die Top-Level-Domain (TLD) darf nicht länger als 63 Zeichen sein.

Filterung chinesischer Zeichen: PHP-Praxis für reguläre Ausdrücke Filterung chinesischer Zeichen: PHP-Praxis für reguläre Ausdrücke Mar 24, 2024 pm 04:48 PM

PHP ist eine weit verbreitete Programmiersprache, die besonders im Bereich der Webentwicklung beliebt ist. Im Prozess der Webentwicklung stoßen wir häufig auf die Notwendigkeit, die vom Benutzer eingegebenen Texte zu filtern und zu überprüfen, wobei die Zeichenfilterung ein sehr wichtiger Vorgang ist. In diesem Artikel wird erläutert, wie reguläre Ausdrücke in PHP zum Implementieren der Filterung chinesischer Zeichen verwendet werden, und es werden spezifische Codebeispiele aufgeführt. Zunächst müssen wir klarstellen, dass der Unicode-Bereich chinesischer Schriftzeichen von u4e00 bis u9fa5 reicht, d. h. alle chinesischen Schriftzeichen liegen in diesem Bereich.

Wie überprüfe ich das Passwort mithilfe eines regulären Ausdrucks in Go? Wie überprüfe ich das Passwort mithilfe eines regulären Ausdrucks in Go? Jun 02, 2024 pm 07:31 PM

Die Methode zur Verwendung regulärer Ausdrücke zur Überprüfung von Passwörtern in Go lautet wie folgt: Definieren Sie ein Muster für reguläre Ausdrücke, das die Mindestanforderungen für Passwörter erfüllt: mindestens 8 Zeichen, einschließlich Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen. Kompilieren Sie reguläre Ausdrucksmuster mit der MustCompile-Funktion aus dem Regexp-Paket. Verwenden Sie die MatchString-Methode, um zu testen, ob die Eingabezeichenfolge mit einem regulären Ausdrucksmuster übereinstimmt.

Leitfaden zur Verwendung regulärer Golang-Ausdrücke Leitfaden zur Verwendung regulärer Golang-Ausdrücke Apr 08, 2024 pm 02:15 PM

Reguläre Ausdrücke in Go bieten ein leistungsstarkes Tool zur Zeichenfolgenverarbeitung: Verwenden Sie das Paket regexp für Operationen mit regulären Ausdrücken. Verwenden Sie die Syntax regulärer Ausdrücke, um Zeichenfolgen abzugleichen und zu bearbeiten. Entspricht Zeichenklassen, sich wiederholenden Zeichen, Gruppierungen, Ankern und Grenzen. Gleichen Sie Zeichenfolgen mit MatchString ab, extrahieren Sie Übereinstimmungen mit FindStringSubmatch und ersetzen Sie Zeichenfolgen mit RemoveAllString. Zu den Anwendungsszenarien gehören die Überprüfung von E-Mail-Adressen, das Extrahieren von HTML-Links usw.

PHP gibt den String von der Startposition bis zur Endposition eines Strings in einem anderen String zurück PHP gibt den String von der Startposition bis zur Endposition eines Strings in einem anderen String zurück Mar 21, 2024 am 10:31 AM

In diesem Artikel wird ausführlich erläutert, wie PHP die Zeichenfolge von der Startposition zur Endposition einer Zeichenfolge in einer anderen Zeichenfolge zurückgibt. Der Herausgeber hält dies für recht praktisch, daher teile ich es Ihnen als Referenz mit diesem Artikel können Sie etwas abgewinnen. Verwenden Sie die Funktion substr() in PHP, um Teilzeichenfolgen aus einer Zeichenfolge zu extrahieren. Die Funktion substr() kann Zeichen innerhalb eines angegebenen Bereichs aus einer Zeichenfolge extrahieren. Die Syntax lautet wie folgt: substr(string,start,length) wobei: string: der ursprüngliche String, aus dem der Teilstring extrahiert werden soll. start: Der Index der Startposition des Teilstrings (beginnend bei 0). Länge (optional): Die Länge des Teilstrings. Wenn nicht angegeben, dann

Wie erkennt man eine URL mit regulärem Ausdruck in Golang? Wie erkennt man eine URL mit regulärem Ausdruck in Golang? May 31, 2024 am 10:32 AM

Die Schritte zum Erkennen von URLs in Golang mithilfe regulärer Ausdrücke sind wie folgt: Kompilieren Sie das reguläre Ausdrucksmuster mit regexp.MustCompile(pattern). Das Muster muss mit Protokoll, Hostname, Port (optional), Pfad (optional) und Abfrageparametern (optional) übereinstimmen. Verwenden Sie regexp.MatchString(pattern,url), um zu erkennen, ob die URL mit dem Muster übereinstimmt.

See all articles