Inhaltsverzeichnis
Einführung in grep
So verwenden Sie grep
Erweiterte grep-Verwendung
grep reguläre Ausdrucks-Metazeichen
Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Detaillierte Erläuterung von Codefällen zu grep und regulären Ausdrücken in Linux

Detaillierte Erläuterung von Codefällen zu grep und regulären Ausdrücken in Linux

Jul 26, 2017 pm 04:03 PM
grep linux 正则

Einführung in grep

Grep ist ein leistungsstarkes Textsuchtool, das reguläre Ausdrücke verwenden kann, um Text zu durchsuchen und passende Zeilen auszudrucken. Normalerweise gibt es drei Versionen von grep: grep, egrep (entspricht grep -E) und fgrep. egrep ist erweitertes grep und fgrep ist schnelles grep (feste Zeichenfolge zum Durchsuchen von Text, unterstützt keine Verweise auf reguläre Ausdrücke, aber die Abfrage ist extrem schnell). grep ist einer der drei Musketiere der Linux-Textverarbeitung.

So verwenden Sie grep

So verwenden Sie: grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [-e PATTERN |. [DATEI ...]

Allgemeine Optionen:

--color=auto: Färben Sie den übereinstimmenden Text und markieren Sie ihn

-i: Ignorieren Sie die Größe der Zeichen Schreiben Sie

-o: Nur übereinstimmende Zeichenfolgen anzeigen

-v: Zeilen anzeigen, die nicht mit dem Muster übereinstimmen können

-E: Unterstützt die Verwendung erweiterter regulärer Ausdrücke

-q: Stiller Modus, d. h. es werden keine Informationen ausgegeben

-A #: Zeigt die mit dem Muster übereinstimmenden Zeilen und # Zeilen danach an

-B #: Anzeige die mit dem Muster übereinstimmenden Linien und die # Zeilen davor und danach

 -C #: Zeigt die mit dem Muster übereinstimmenden Zeilen und die # Zeilen davor und danach an

 Hinweis: Erforderlich bei Verwendung von grep-Matching. Verwenden Sie doppelte Anführungszeichen (einfache Anführungszeichen sind starke Anführungszeichen), um zu verhindern, dass das System es mit Parametern oder speziellen Befehlen verwechselt und einen Fehler meldet.

Erweiterte grep-Verwendung

Verwendung: egrep [OPTIONS] PATTERN [DATEI...]

grep -E [OPTIONS] ] MUSTER [DATEI...]

-i: Groß-/Kleinschreibung von Zeichen ignorieren
-o: Nur die übereinstimmende Zeichenfolge selbst anzeigen
-v: Anzeige, die nicht mit dem Muster übereinstimmt Zeile
-q: Silent-Modus, d. h. es werden keine Informationen ausgegeben
-A #: Zeigt die mit dem Muster übereinstimmende Zeile und die # Zeilen danach an
-B #: Zeigt die mit dem Muster übereinstimmende Zeile an Muster und seine # Vorherigen # Zeilen
-C #: Zeigt die Zeilen an, die mit dem Muster übereinstimmen, und die # Zeilen davor und danach
-G: Unterstützt grundlegende reguläre Ausdrücke

grep reguläre Ausdrucks-Metazeichen

'^': Verankern Sie den Anfang der Zeile

'$': Verankern Sie das Ende der Zeile

'.': Entspricht einem beliebigen Zeichen

' *': Übereinstimmung mit null oder mehr vorherigen Zeichen

'?': Übereinstimmung mit dem vorhergehenden Zeichen 0 oder 1 Mal;

'{m}': Übereinstimmung mit dem Zeichen davor m-mal (für Escape-Zeichen)

'{m,n}': Übereinstimmung mit dem Zeichen davor mindestens m-mal und höchstens n-mal

 ': Entspricht einem Zeichen innerhalb des angegebenen Bereichs | '[^]' Entspricht einem einzelnen Zeichen außerhalb des angegebenen Bereichs

 ' oder 'b': Ankerwort Überschrift, '. >' oder 'b': Ankerwortende (verfügbar : vollständige Wörter finden)

 ()': mehrere Zeichen als Ganzes behandeln

Rückverweis: Verweisen Sie auf die Zeichen, die mit dem Muster in den vorherigen Gruppierungsklammern übereinstimmen

Der Inhalt, der mit dem Muster in den Gruppierungsklammern übereinstimmt oder automatisch von der Engine für reguläre Ausdrücke aufgezeichnet wird. In den internen Variablen:

1: Das Muster beginnt von links, der Inhalt entspricht dem Muster zwischen der ersten linken Klammer und der passenden rechten Klammer

 2: Das Muster Beginnt von links, der Inhalt entspricht dem Muster zwischen der zweiten linken Klammer und der passenden rechten Klammer...

 

Erweiterte reguläre Ausdrücke unterscheiden sich geringfügig von regulären Ausdrücken:

 []': stimmt immer noch mit jedem einzelnen Zeichen innerhalb des angegebenen Bereichs überein; es gibt jedoch viele spezielle Übereinstimmungsmethoden.

 [:digit:] entspricht jeder einzelnen Ziffer

 [:lower:] entspricht jedem einzelnen Kleinbuchstaben

            

  [:upper:] entspricht jedem einzelnen Kleinbuchstaben Ein einzelner Großbuchstabe Buchstabe

[:alpha:] entspricht jedem einzelnen Buchstaben

[:alnum:] entspricht jedem einzelnen Buchstaben oder jeder einzelnen Zahl

[:punct:] entspricht jedem einzelnen Symbol

 [:space:] entspricht einem einzelnen Leerzeichen

An einigen Stellen wird die Verwendung von Escape-Zeichen aufgehoben:

'?': entspricht dem vorhergehenden Zeichen 0 oder 1 Mal ;

 '+': Übereinstimmung mit dem Zeichen davor mindestens einmal

 '{m}': Übereinstimmung mit dem Zeichen davor m-mal (für Escape-Zeichen)

'{m ,n}': Entspricht dem vorhergehenden Zeichen mindestens m-mal und höchstens n-mal

(): Bündelt ein oder mehrere Zeichen und verarbeitet sie als Ganzes, umgekehrte Referenzen werden wie üblich verwendet.

 |': oder (

Hinweis

: 'C|cat' bedeutet C und Katze, '(C|c)at ist Katze und Katze')

Übungsfragen :

1. Listen Sie die Benutzernamen aller angemeldeten Benutzer auf dem aktuellen System auf. Hinweis: Wenn sich derselbe Benutzer mehrmals anmeldet, wird er nur einmal angezeigt

2. Holen Sie sich die relevanten Informationen des Benutzers heraus, der sich zuletzt beim aktuellen System angemeldet hat


[root@localhost ~]# who | cut -d' ' -f1|uniqroot
Nach dem Login kopieren

3. Holen Sie das Beste heraus Benutzer, die es als Standard-Shell auf dem aktuellen System verwenden. Diese Shell


[root@localhost ~]# id `last | head -1 | cut -d' ' -f1`
uid=0(root) gid=0(root) groups=0(root)
Nach dem Login kopieren
[root@localhost ~]# cut -d':' -f7 /etc/passwd|uniq -c|sort -n|tail -1|cut -d' ' -f7/sbin/nologin
Nach dem Login kopieren

  4.将/etc/passd中的第三个字段设置最大的后10个用户的信息全部改为大写保存至/tmp/maxuser.txt文件中


[root@localhost ~]# sort -t':' -k3 -n /etc/passwd|tail -10|tr 'a-z' 'A-Z' >/tmp/maxusers.txt
[root@localhost ~]# cat /tmp/maxusers.txt 
NOBODY:X:99:99:NOBODY:/:/SBIN/NOLOGIN
SYSTEMD-NETWORK:X:192:192:SYSTEMD NETWORK MANAGEMENT:/:/SBIN/NOLOGIN
NGINX:X:996:994:NGINX WEB SERVER:/VAR/LIB/NGINX:/SBIN/NOLOGIN
CHRONY:X:997:995::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
POLKITD:X:998:996:USER FOR POLKITD:/:/SBIN/NOLOGIN
SYSTEMD-BUS-PROXY:X:999:997:SYSTEMD BUS PROXY:/:/SBIN/NOLOGIN
DINGJIE:X:1000:1000:DINGJIE:/HOME/DINGJIE:/BIN/BASH
JEFF:X:1001:1024:WOSHIDASHUAIBI:/HOME/JEFF:/BIN/BASH
EGON:X:1002:1002::/HOME/EGON:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
Nach dem Login kopieren

  5.取出当前主机的IP地址


[root@localhost ~]# ifconfig | egrep "inet.*broadcast.*"|cut -d' ' -f10192.168.0.133
Nach dem Login kopieren

  6.列出/etc目录下所有已.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中


[root@localhost ~]# find /etc -name '*.conf' | egrep -o "[^/]*(\.conf)$"|tr 'a-z' 'A-Z' >/tmp/etc.conf
[root@localhost ~]# cat /tmp/etc.conf 
RESOLV.CONF
CA-LEGACY.CONF
FASTESTMIRROR.CONF
LANGPACKS.CONF
SYSTEMD.CONF
VERSION-GROUPS.CONF
LVM.CONF
LVMLOCAL.CONF
ASOUND.CONF
LDAP.CONF
MLX4.CONF
RDMA.CONF
SMTPD.CONF
Nach dem Login kopieren

  7.显示/var目录下一级子目录或文件的总数


[root@localhost ~]# ls /var | wc -l21
Nach dem Login kopieren

  8.取出/etc/group第三个字段数值最小的10个组的名字


[root@localhost ~]# sort -t: -k3 -n /etc/group|head -10 |cut -d':' -f1
root
bin
daemon
sys
adm
tty
disklpmem
kmem
Nach dem Login kopieren

  9.将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中


[root@localhost ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
[root@localhost ~]# cat /tmp/etc.test 

#
# /etc/fstab
# Created by anaconda on Sat May 13 10:12:58 2017#
# Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/cl-root     /                       xfs     defaults        0 0UUID=2789d01a-4e2b-47a5-9c3c-537641648663 /boot                   xfs     defaults        0 0/dev/mapper/cl-swap     swap                    swap    defaults        0 0\S
Kernel \r on an \m
Nach dem Login kopieren

  对于正则表达式的使用需要多联系加强记忆,否则是用不好正则表达式的,在学习过程中切记多写多背。

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Codefällen zu grep und regulären Ausdrücken in 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

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.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Wofür ist Linux eigentlich gut? Wofür ist Linux eigentlich gut? Apr 12, 2025 am 12:20 AM

Linux eignet sich für Server, Entwicklungsumgebungen und eingebettete Systeme. 1. Als Serverbetriebssystem ist Linux stabil und effizient und wird häufig zur Bereitstellung von Anwendungen mit hoher Konreise verwendet. 2. Als Entwicklungsumgebung bietet Linux effiziente Befehlszeilen -Tools und Paketmanagementsysteme, um die Entwicklungseffizienz zu verbessern. 3. In eingebetteten Systemen ist Linux leicht und anpassbar und für Umgebungen mit begrenzten Ressourcen geeignet.

Verwenden von Docker mit Linux: eine umfassende Anleitung Verwenden von Docker mit Linux: eine umfassende Anleitung Apr 12, 2025 am 12:07 AM

Die Verwendung von Docker unter Linux kann die Entwicklung und die Bereitstellungseffizienz verbessern. 1. Installieren Sie Docker: Verwenden Sie Skripte, um Docker auf Ubuntu zu installieren. 2. Überprüfen Sie die Installation: Führen Sie die Sudodockerrunhello-Welt aus. 3. Basisnutzung: Erstellen Sie einen Nginx-Container-Dockerrun-Namemy-Nginx-P8080: 80-DNGinx. 4. Erweiterte Verwendung: Erstellen Sie ein benutzerdefiniertes Bild, erstellen und führen Sie mit Dockerfile aus. 5. Optimierung und Best Practices: Befolgen Sie Best Practices zum Schreiben von Dockerfiles mit mehrstufigen Builds und DockerComponpose.

Was tun, wenn der Port Apache80 belegt ist Was tun, wenn der Port Apache80 belegt ist Apr 13, 2025 pm 01:24 PM

Wenn der Port -80 -Port der Apache 80 besetzt ist, lautet die Lösung wie folgt: Finden Sie den Prozess, der den Port einnimmt, und schließen Sie ihn. Überprüfen Sie die Firewall -Einstellungen, um sicherzustellen, dass Apache nicht blockiert ist. Wenn die obige Methode nicht funktioniert, konfigurieren Sie Apache bitte so, dass Sie einen anderen Port verwenden. Starten Sie den Apache -Dienst neu.

So starten Sie Apache So starten Sie Apache Apr 13, 2025 pm 01:06 PM

Die Schritte zum Starten von Apache sind wie folgt: Installieren Sie Apache (Befehl: sudo apt-Get-Get-Installieren Sie Apache2 oder laden Sie ihn von der offiziellen Website herunter). (Optional, Linux: sudo systemctl

So beginnen Sie mit der Überwachung von Oracle So beginnen Sie mit der Überwachung von Oracle Apr 12, 2025 am 06:00 AM

Die Schritte zum Starten eines Oracle -Listeners sind wie folgt: Überprüfen

So überwachen Sie die NGINX SSL -Leistung auf Debian So überwachen Sie die NGINX SSL -Leistung auf Debian Apr 12, 2025 pm 10:18 PM

In diesem Artikel wird beschrieben, wie die SSL -Leistung von NGINX -Servern auf Debian -Systemen effektiv überwacht wird. Wir werden Nginxexporter verwenden, um Nginx -Statusdaten in Prometheus zu exportieren und sie dann visuell über Grafana anzeigen. Schritt 1: Konfigurieren von Nginx Erstens müssen wir das Modul stub_status in der nginx -Konfigurationsdatei aktivieren, um die Statusinformationen von Nginx zu erhalten. Fügen Sie das folgende Snippet in Ihre Nginx -Konfigurationsdatei hinzu (normalerweise in /etc/nginx/nginx.conf oder deren inklusive Datei): location/nginx_status {stub_status

So richten Sie im Debian -System einen Recyclingbehälter ein So richten Sie im Debian -System einen Recyclingbehälter ein Apr 12, 2025 pm 10:51 PM

In diesem Artikel werden zwei Methoden zur Konfiguration eines Recycling -Bin in einem Debian -System eingeführt: eine grafische Schnittstelle und eine Befehlszeile. Methode 1: Verwenden Sie die grafische Schnittstelle Nautilus, um den Dateimanager zu öffnen: Suchen und starten Sie den Nautilus -Dateimanager (normalerweise als "Datei") im Menü Desktop oder Anwendungen. Suchen Sie den Recycle Bin: Suchen Sie nach dem Ordner recycelner Behälter in der linken Navigationsleiste. Wenn es nicht gefunden wird, klicken Sie auf "Andere Speicherort" oder "Computer", um sie zu suchen. Konfigurieren Sie Recycle Bin-Eigenschaften: Klicken Sie mit der rechten Maustaste auf "Recycle Bin" und wählen Sie "Eigenschaften". Im Eigenschaftenfenster können Sie die folgenden Einstellungen einstellen: Maximale Größe: Begrenzen Sie den im Recycle -Behälter verfügbaren Speicherplatz. Aufbewahrungszeit: Legen Sie die Erhaltung fest, bevor die Datei automatisch im Recyclingbehälter gelöscht wird

So optimieren Sie die Leistung von Debian Readdir So optimieren Sie die Leistung von Debian Readdir Apr 13, 2025 am 08:48 AM

In Debian -Systemen werden Readdir -Systemaufrufe zum Lesen des Verzeichnisinhalts verwendet. Wenn seine Leistung nicht gut ist, probieren Sie die folgende Optimierungsstrategie aus: Vereinfachen Sie die Anzahl der Verzeichnisdateien: Teilen Sie große Verzeichnisse so weit wie möglich in mehrere kleine Verzeichnisse auf und reduzieren Sie die Anzahl der gemäß Readdir -Anrufe verarbeiteten Elemente. Aktivieren Sie den Verzeichnis -Inhalt Caching: Erstellen Sie einen Cache -Mechanismus, aktualisieren Sie den Cache regelmäßig oder bei Änderungen des Verzeichnisinhalts und reduzieren Sie häufige Aufrufe an Readdir. Speicher -Caches (wie Memcached oder Redis) oder lokale Caches (wie Dateien oder Datenbanken) können berücksichtigt werden. Nehmen Sie eine effiziente Datenstruktur an: Wenn Sie das Verzeichnis -Traversal selbst implementieren, wählen Sie effizientere Datenstrukturen (z.

See all articles