Heim  >  Artikel  >  Betrieb und Instandhaltung  >  regulärer Ausdruck

regulärer Ausdruck

巴扎黑
巴扎黑Original
2017-07-21 10:03:232048Durchsuche

1. Regulärer Ausdruck

1. Art der passenden Zeichen

  • [a-z]: Kleinbuchstaben

  • A-Z]: Großbuchstaben

  • [a-Z]: Klein- oder Großbuchstaben

  • [0-9]: Zahlen

  • [a-zA-Z0-9]: Entspricht einem Zeichen, das ein Buchstabe oder eine Zahl ist

  • : Entspricht jedem Zeichen, außer Leerzeichen

  • [0-f]: Hexadezimalzahl

  • abc | def: abc oder def

  • a ( bc |. de) f: abcf oder adef

  • <: Das erste Wort wird normalerweise durch Leerzeichen oder Sonderzeichen getrennt und die fortlaufende Zeichenfolge wird als Wort

    < 🎜 betrachtet >
  • >: Wortende

  • [^Ausdruck]: alle Zeichen außer Kleinbuchstaben usw.

2. Gefolgt von den folgenden Symbolen zur Steuerung der Anzahl der Übereinstimmungen

Die linke Seite solcher Symbole muss den Ausdruck des ersten Punktes oben haben

  • Ausdruck*: 0 oder n Zeichen

  • Ausdruck+: 1 oder n Zeichen

  • Ausdruck?: 0 oder 1 Zeichen

  • Ausdruck {n}: n Zeichen

  • Ausdruck {n:m}: n bis m Zeichen

  • Ausdruck {n,}: mindestens n Zeichen

[Beispiel] [a-z]* bedeutet Übereinstimmung mit 0 oder mehreren Kleinbuchstaben

3. Kontrollieren Sie die übereinstimmenden Zeichen am Anfang und Ende

  • ^ Ausdruck: Der Kopf stimmt überein

  • Ausdruck$: Der Schwanz erfüllt

2. Drei wichtige Linux-Textverarbeitungstools

1. Egrep-Filtertool

Erweiterte Version von grep, Sie kann reguläre Ausdrücke verwenden

Syntax:

egrep – Option „regulärer Ausdruck“ Dateiname

Optionen:

  • -n: Zeilennummern anzeigen

  • -o: Nur passende Inhalte anzeigen

  • -q: Lautlos Modus, keine Ausgabe, Sie müssen $? verwenden, um zu beurteilen, ob die Ausführung erfolgreich ist, dh ob der gewünschte Inhalt gefiltert wird

  • - l: Nur wenn die Übereinstimmung erfolgreich ist Wenn dies fehlschlägt, wird der Dateiname nicht zusammen mit grep -rl 'root' /etc

  • -A gedruckt Bei Erfolg werden die passende Zeile und die folgenden n Zeilen zusammen gedruckt

  • -B: Bei erfolgreicher Übereinstimmung werden die passende Zeile und die ersten n Zeilen zusammen gedruckt

  • -C: Wenn die Übereinstimmung erfolgreich ist, drucken Sie die passende Zeile und die n Zeilen davor und danach zusammen aus

  • --color

  • -c: Wenn die Übereinstimmung erfolgreich ist, drucken Sie die Anzahl der übereinstimmenden Zeilen aus

  • -i: Groß-/Kleinschreibung ignorieren

  • - v: Negieren, nicht übereinstimmen

  • -w: Wörter abgleichen

2. sed stream editor

Syntax:

Syntax 1: sed - Option 'numerische Positionierung + Befehl' Dateiname

Optionen:

  • -n: Stiller Modus, keine Ausgabe

  • -e: Mehrfachbearbeitung, das ist nicht ganz klar

  • - i: Direkte Änderung Anstatt den Dateiinhalt auszugeben

  • -r: Erweiterter Modus, Sie können reguläre Ausdrücke verwenden

  • -f: Geben Sie an Dateinamen und Ändern der Aktion. Schreiben Sie eine neue Datei

Positionierung:

①Nummernpositionierung (Positionierung der Eingabezeilennummer)

  • 1: Einzelzeile

  • 1,3: Bereich von der ersten Zeile bis zur dritten Zeile

  • 2 ,+4: Mehrere Zeilen nach der passenden Zeile

  • 4,~3: Von der vierten Zeile bis zum nächsten Vielfachen von 3 Zeilen

  • 2 ~3: Zeilen alle drei Zeilen, beginnend mit der zweiten Zeile

  • $: Letzte Zeile

  • 1!: Zeilen außer der ersten Zeile

[Beispiel] sed -n '1p' /etc/passwd

②Positionierung regulärer Ausdrücke

  • Reguläre Ausdrücke müssen mit // umschlossen werden

  • Das Erweitern regulärer Ausdrücke erfordert den Parameter -r oder Escapezeichen

  • Ersetzen kann Untermuster regulärer Ausdrücke verwenden, d. h. Klammern (), 1 oder 2 können Untermuster darstellen

[Beispiel] sed - r 's/(. )(.)/21/ file1 bedeutet, den ersten und zweiten Teil des Spiels zu ersetzen

* Gierige Option: g ausfüllen, was bedeutet, alle zu ersetzen passende Elemente in einer Zeile

Befehl:

  • ein ∶ anhängen,

  • c ∶ ändern,

  • d ∶ löschen löschen,

  • i ∶ einfügen einfügen, i kann von Zeichenfolgen gefolgt werden, und diese Zeichenfolgen werden sein in einer neuen Zeile Erscheinen (die aktuelle vorherige Zeile)

  • p∶ print print

  • s∶ ersetzen ersetzen, Sie können die Ersetzung direkt durchführen arbeiten. Normalerweise kann diese Aktion mit einem regulären Ausdruck gepaart werden. Zum Beispiel 1,20s/alt/neu/g

*s Befehls-Sonderanweisungen:

verwenden Sie {Befehl 1: Befehl 2: Befehl 3 } Es können mehrere Befehle hinzugefügt werden

s Befehlssyntax: sed -r 'Ersatzbefehl s/regulärer Ausdruck/Ersatzinhalt/gierige Option g' Dateiname

3

Es besteht aus Befehlen, regulären Ausdrücken (müssen von // umgeben sein), Vergleichen und relationalen Operationen

Verwenden Sie den Parameter -F in der Option, um das Intervallsymbol zu definieren

Verwenden Sie die Reihenfolge $1, $2, $3 usw., um die verschiedenen Felder in jeder Spalte, getrennt durch Abstandszeichen in jeder Dateizeile, darzustellen. Die NF-Variable stellt die Anzahl der Felder im aktuellen Datensatz dar

Syntax

awk – Optionsparameter „Logische Beurteilung {Befehlsvariable 1, Variable 2, Variable 3}“ Dateiname

Option

  • -F Feldtrennzeichen definieren, das Standardtrennzeichen sind fortlaufende Leerzeichen oder Tabulatoren

  • -v Sie können auch die geliehene Methode verwenden, um

    einzuführen
aus Shell-Variablen

AWK-Variable

  • NR Die Anzahl der aktuellen Datensätze (Statistik, nachdem alle Dateien verbunden sind)

  • FNR Die Anzahl der aktuellen Datensätze (nur Statistiken für die aktuelle Datei, nicht alle)

  • FS-Feldtrennzeichen sind standardmäßig fortlaufende Leerzeichen oder Tabulatoren und mehrere Für die Trennung können verschiedene Symbole verwendet werden. Symbol -F[:/]

  • OFS Das Standardtrennzeichen für Ausgabezeichen ist Leerzeichen

[OFS-Beispiel]

# awk -F: 'OFS="=====" {print $1,$2}' /etc/passwd
root===== x

  • NF Die Anzahl der Felder in der aktuell gelesenen Zeile

  • ORS Der Standardausgabedatensatz Trennzeichen ist Newline

[ORS-Beispiel]

# awk -F: 'ORS="=====" { print $1,$2}' /etc /passwd
root x=====bin x=====

  • DATEINAME aktuell Dateiname

[Beispiel 1] Verwendung von AWK-Variablen
# awk '{print NR,FNR,$1}' file1 file2
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff
#

[Beispiel 2]Anleitung Shell-Variablen zitieren

# a=root
# awk -v var=$a -F: '$1 == var {print $0}' /etc/passwd
Oder teilen Sie den gesamten Befehl auf und Übergeben Sie es, um die Shell-Variablen verfügbar zu machen,
# awk -F: '$1 == "'$a'" {print $0}' /etc/passwd
# a=NF
# awk -F: '{print $'$a'} ' /etc/passwd

Logische Operationen (können direkt auf Felder für Operationen verweisen)

  • = += -= /= *=: Zuweisung

  • && || !: Logisch UND logisch oder logisch NICHT

  • ~ !~: Reguläre Übereinstimmung oder keine Übereinstimmung, reguläre Ausdrücke müssen von /regular/ umgeben sein

  • <= >= != ==: Beziehung, wann Beim Vergleich von Zeichenfolgen müssen die Zeichenfolgen in doppelte Anführungszeichen gesetzt werden. Kommen Sie zu

  • $: Feldreferenzen müssen mit $ hinzugefügt werden, während Variablenreferenzen direkt mit Variablennamen

  • + - * / % ++ --: Operatoren

Escape-Sequenz

  • \ self

  • $ Escape $

  • t Tab

  • b Backspace

  • r Wagenrücklaufzeichen

  • n Zeilenumbruchzeichen

  • c Zeilenumbruch aufheben

Bitte korrigieren Sie mich, wenn es Fehler gibt. Weitere Details finden Sie unter:


Das obige ist der detaillierte Inhalt vonregulärer Ausdruck. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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