1. Übereinstimmung mit Zeichen
. Übereinstimmung mit jedem einzelnen Zeichen
[ ] Übereinstimmung mit jedem Zeichen innerhalb des angegebenen Bereichs
[^] Übereinstimmung mit jedem Zeichen innerhalb des angegebenen Bereichs
[:alpha:] Alphabetische Zeichen
[:lower:] Kleingeschriebene alphabetische Zeichen
[:upper:] Großgeschriebene alphabetische Zeichen
[:digit : ] Zahlen
[:alnum:] Alphanumerische Zeichen
[:space:] Leerzeichen (Drucken verboten) wie Wagenrücklauf, Zeilenvorschub, vertikale Tabulatortaste und Feed-Seitenumbrüche
[:punct:] Satzzeichen
[:cntrl:] Steuerzeichen (Drucken verboten)
[:print:] Druckbare Zeichen
Verwenden Sie im Allgemeinen zwei Quadrate Bei der Verwendung werden Klammern verwendet, die in den folgenden Beispielen verwendet werden.
2. Anzahl der Übereinstimmungen
* Übereinstimmung mit dem vorherigen Zeichen jederzeit
.* Übereinstimmung mit jedem Zeichen beliebiger Länge (beachten Sie den Greedy-Modus, z. B. grep "r). *t" /etc/passwd )
x{m,n} Gibt an, dass das vorangehende Zeichen mindestens m-mal und höchstens N-mal vorkommt.
x{m,} Gibt an, dass das vorangehende Zeichen mindestens m-mal vorkommt.
x{0,n} Gibt an, dass das vorhergehende Zeichen höchstens N-mal vorkommt.
x {m} Genaue Übereinstimmung m Mal
? Übereinstimmung mit dem vorhergehenden Zeichen 0 oder 1 Mal
3. Anker
1.^ Anker am Anfang der Zeile grep "^ r..t " /etc/passwd
2.$ Ankerzeilenende grep "h$" /etc/passwd
3.^$ Anker-Leerzeile grep "^$" /etc /passwd
4.< (b) Anker am Wortanfang grep " 5.> Der Wortanfang grep "r ..t>" /etc/passwd Beispiel (leicht zu verwechseln): enthält mindestens ein Leerzeichen grep "[[:space:] ]{1,}“ /etc/passwd enthält mindestens ein Nicht-Leerzeichen, grep „[^[:space:]]{1,}“ /etc/passwd tut es kein Leerzeichen haben grep -v "[^[:space :]]{1,}" /etc/passwd 6 () Gruppenzeichen grep "(l..e).*1r" Beispiel: grep --color "l([13]):1:.*:1" /etc/inittab 4. Optionen -v Das Ergebnis negieren -i Die Groß-/Kleinschreibung von Buchstaben ignorieren -o Nur die übereinstimmende Zeichenfolge anzeigen (anderer Inhalt der Zeile wird nicht angezeigt) - E Unterstützt erweiterte reguläre Ausdrücke -A n n Zeilen unterhalb der übereinstimmenden Zeile anzeigen -B n n Zeilen oberhalb der übereinstimmenden Zeile anzeigen -C n n Zeilen darüber anzeigen und unter der übereinstimmenden Zeile Übung: 1. Finden Sie relevante Informationen zu Benutzer1 im System. (Benutzer11, myuser1 im Voraus erstellen) (Fehleranfällig) grep "user1" /etc/passwd Alle Zeilen, die user1 enthalten grep " useradd -c "user1's uncle" /etc/passwd -c is a comment grep "^ 2. Finden Sie relevante Informationen über Benutzer im System, die mit „Benutzer“ gefolgt von Zahlen beginnen. grep "^user[0-9]{1,}>" /etc/passwd 3. Analysieren Sie die Eigenschaften der folgenden zwei Textzeilen in /etc/inittab Datei ablegen und genau schreiben Das gefundene ähnliche zweizeilige Muster erfordert, dass die Zahlen in jeder Zeile gleich sein müssen. l1:1:wait:/etc/rc.d/rc 1 l3:3:wait:/etc/rc.d/rc 3 grep " l([13]):1:.*:.* 1" inittab Erweiterung: Übereinstimmung mit allen oben genannten Funktionen: grep "l([0-9]):1:.*:.* 1 " inittab Wenn es 10 überschreitet, müssen Sie die Mindestübereinstimmung hinzufügen: grep "l([0-9]{1,}):1:.*:.* 1" inittab 4. Zeilen anzeigen, die mit s ohne Berücksichtigung der Groß-/Kleinschreibung in der Datei /proc/meminfo beginnen grep „^[sS]“ /proc/meminfo 5 mit nologin Die Zeile grep "nologin$" /etc/passwd 6 zeigt /etc/inittab an, beginnend mit #, gefolgt von einem oder mehreren Leerzeichen und dann gefolgt von beliebigen Zeilen mit Nicht-Leerzeichen grep "^#[[:space:]]{1,}[^[:space:]]" /etc/inittab 7 /inittab enthält eine Zeile mit einer Zahl zwischen zwei Doppelpunkten grep ":[0-9]:" /etc/inittab 8. Zeigt /boot/grub/grub.conf an mit einem oder mehreren Leerzeichen in der Datei grep ":[0-9]:" /etc/inittab 9 Zeigt die Datei /etc/inittab an, die mit einer Zahl beginnt und endet mit einer Nummer, die mit derselben Nummer beginnt. grep "^([0-9]).*1$" /etc/inittab 10. Nicht leere Zeilen in der Datei /etc/inittab anzeigen grep -v "^$" /etc/inittab 11. Rufen Sie die relevante IP-Adresse der aktuellen Netzwerkschnittstelle ab (außer 127.0.0.1) ifconfig |grep "inet addr" | grep - v "127.0.0.1"|. cut -d: -f2|cut -d" " -f1 ifconfig |grep -A 1 "eth" |grep -o "addr:[0-9.]{1,}"|cut -d: -f2 5. Erweiterte reguläre Ausdrücke