So finden Sie alle Dateien mit einem bestimmten Text mit Linux Shell

So finden Sie alle Dateien mit einem bestimmten Text mit Linux Shell

Zielsetzung

Der folgende Artikel enthält einige nützliche Tipps zum Suchen aller Dateien in einem bestimmten Verzeichnis oder des gesamten Dateisystems, das ein bestimmtes Wort oder eine bestimmte Zeichenfolge enthält.

Schwierigkeit

EINFACH

Konventionen

  • # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
  • $ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Beispiele

Suchen Sie alle Dateien mit einem bestimmten Zeichenfolge nicht rekursiv

Das erste Befehlsbeispiel sucht nach einer Zeichenfolge strecken in allen Dateien innerhalb /usw/ Verzeichnis und ohne Unter-Verzeichnisse ausschließen:

# Grep -S Stretch/etc/*/etc/os-release: hübsch_name = "Debian GNU/Linux 9 (Stretch)"/etc/os-release: Version = "9 (Stretch)" 

Der -S Die GREP -Option unterdrückt Fehlermeldungen zu nicht vorhandenen oder nicht lesbaren Dateien. Die Ausgabe zeigt Dateinamen und druckt die tatsächliche Zeile mit der angeforderten Zeichenfolge aus.



Suchen Sie alle Dateien mit einem bestimmten Zeichenfolge rekursiv

Der obige Befehl ließ alle Unterverzeichnisse aus. Rekursiv zu suchen bedeutet, auch alle Unterverzeichnisse zu durchqueren. Der folgende Linux -Befehl sucht nach einer Zeichenfolge strecken in allen Dateien innerhalb /usw/ Verzeichnis einschließlich aller Unterverzeichnisse:

# Grep -r Stretch/etc/*/etc/apt/Quellen.Liste:# Deb Cdrom: [Debian GNU/Linux-Test _STRETH_-Offizieller Snapshot AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/etc/apt/Quellen.Liste: #DEB CDROM: [Debian GNU/Linux-Test _STRETCH_-Offizieller Snapshot AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/etc/apt/Quellen.Liste: Deb http: // ftp.au.Debian.org/debian/Stretch main/etc/apt/Quellen.Liste: Deb-Src http: // ftp.au.Debian.org/debian/Stretch main/etc/apt/Quellen.Liste: Deb http: // Sicherheit.Debian.org/debian-Security Stretch/Aktualisiert Haupt-/ETC/APT/Quellen.Liste: Deb-Src http: // Sicherheit.Debian.org/debian-Security Stretch/Aktualisiert Haupt-/etc/Wörterbücher-Common/Wörter: Backstretch/etc/Wörterbücher-Common/Wörter: Backtretchs/etc/Wörterbücher-Common/Wörter: Backtretches/etc/Wörterbücher-Common/Wörter: HomeStretch/ etc/wörterbücher-common/wörter: homestretchs/etc/wörterbücher-common/wörter: homestretches/etc/wörterbücher-common/wörter: uttretch/etc/wörterbücher-common/wörter: ausgestreckt/etc/woticaries-common/words: asctretches/ etc/wörterbücher-common/wörter: outtretching/etc/wörterbücher-common/wörter: streck/etc/wörterbücher-common/wörter: striet's/etc/wörterbücher-common/wörter: strecked/etc/wörterbücher-common/wörter: strieter/ usw./Wörterbücher-Common/Wörter: Stretchers/etc/Wörterbücher-Common/Wörter: Streters/etc/Wörterbücher-Common/Wörter: Dehnungen/etc/Wörterbücher-Common/Wörter: Stretchier/etc/Wörterbücher-Common/Wörter: Dehnigste/dauerhaft/ usw./Wörterbücher-Common/Wörter:Stretching/etc/Wörterbücher-Common/Wörter: dehnbar/etc/grub.D/00_Header: Hintergrund_image -m Stretch 'make_system_path_relative_to_its_root "$ grub_background"'/etc/os-release: hübsch_name = "debian gnu/linux 9 (Stretch)"/etc/os-release: Version = "9 (Drise)" 


Suchen Sie nach allen Dateien, die ein bestimmtes Wort enthalten

Obenstehendes Grep Befehlsbeispiel listet alle Dateien auf, die die Zeichenfolge enthalten strecken. Bedeutet die Zeilen mit Strecken, gestreckt usw. werden auch gezeigt. Verwenden Sie Greps -w Option, nur ein bestimmtes Wort anzuzeigen:

# Grep -rw Stretch/etc/*/etc/apt/Quellen.Liste:# Deb Cdrom: [Debian GNU/Linux-Test _STRETH_-Offizieller Snapshot AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/etc/apt/Quellen.Liste: #DEB CDROM: [Debian GNU/Linux-Test _STRETCH_-Offizieller Snapshot AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/etc/apt/Quellen.Liste: Deb http: // ftp.au.Debian.org/debian/Stretch main/etc/apt/Quellen.Liste: Deb-Src http: // ftp.au.Debian.org/debian/Stretch main/etc/apt/Quellen.Liste: Deb http: // Sicherheit.Debian.org/debian-Security Stretch/Aktualisiert Haupt-/ETC/APT/Quellen.Liste: Deb-Src http: // Sicherheit.Debian.org/debian-Security Stretch/Aktualisiert Haupt-/etc/wörterbücher-common/wörter: streck/etc/wörterbücher.D/00_Header: Hintergrund_image -m Stretch 'make_system_path_relative_to_its_root "$ grub_background"'/etc/os-release: hübsch_name = "debian gnu/linux 9 (Stretch)"/etc/os-release: Version = "9 (Drise)" 

Listen Sie nur Dateinamen auf, die einen bestimmten Text enthalten

Die obigen Befehle können eine unnötige Ausgabe erzeugen. Im nächsten Beispiel werden nur alle Dateinamen enthalten, die die Zeichenfolge enthalten strecken innerhalb /usw/ Verzeichnis rekursiv:

# Grep -rl Stretch/etc/*/etc/apt/Quellen.Liste/etc/wörterbücher-common/wörter/etc/grub.D/00_Header/etc/os-Release 

Führen Sie eine unempfindliche Suche durch

Alle Suchvorgänge sind standardmäßig sensibel, was bedeutet, dass jede Suche nach einer Zeichenfolge strecken Zeigt nur Dateien an, die den genauen Groß- und Kleinbucher -Match enthalten. Durch die Verwendung von Greps -ich Option In dem Befehl wird auch alle enthaltenen Zeilen aufgeführt, die enthalten sind Strecken, STRECKEN, Strecken usw., Daher um eine unempfindliche Suche durchzuführen.

# Grep -ril Stretch/etc/*/etc/apt/Quellen.Liste/etc/wörterbücher-common/Standard.Hash/etc/Wörterbücher-Common/Wörter/etc/grub.D/00_Header/etc/os-Release 


Bestimmte Dateinamen von der Suche einfügen oder ausschließen

Verwendung Grep Befehl Es ist auch möglich, nur bestimmte Dateien als Teil der Suche einzugeben. Zum Beispiel möchten wir nur nach einem bestimmten Text/einer bestimmten Zeichenfolge in Konfigurationsdateien mit Erweiterung suchen .Conf. Das nächste Beispiel finden alle Dateien mit Erweiterung .Conf innerhalb /usw Verzeichnis mit String verprügeln:

# Grep -ril Bash /etc /*.conf oder # grep -ril -include = \*.conf bash /etc /* /etc /adduser.Conf 

In ähnlicher Weise verwendet --ausschließen Option Wir können bestimmte Dateinamen ausschließen:

# grep -ril -exclude = \*.conf bash/etc/*/etc/alternatives/view/etc/alternatives/vim/etc/alternatives/vi/etc/alternatives/vimdiff/etc/alternatives/rvim/etc/alternatives/ex/etc/alternatives/rview/etc. /Bash.bashrc /etc /bash_completion.d/grub/etc/cron.täglich/apt-compat/etc/cron.täglich/exim4-base/etc/wörterbücher-common/standardmäßig.Hash/etc/wörterbücher-common/wörter/etc/inputrc/etc/passwd/etc/passwd-/etc/profil/etc/shells/etc/skel/.Profil/etc/skel/.bashrc/etc/skel/.Bash_logout 

Bestimmte Verzeichnisse von der Suche ausschließen

Wie bei Dateien kann Grep auch bestimmte Verzeichnisse von der Suche ausschließen. Verwenden --ausschließen Option zum Ausschluss des Verzeichnisses von der Suche. Das folgende Suchbeispiel finden Sie alle Dateien, die die Zeichenfolge enthalten strecken innerhalb /usw Verzeichnis und ausschließen /etc/grub.D Aus der Suche:

# grep-exclude-dir =/etc/grub.d -rwl Stretch/etc/*/etc/apt/Quellen.Liste/etc/wörterbücher-common/wörter/etc/os-release 

Zeigen Sie eine Zeilennummer an, die durchsuchte Zeichenfolge enthält

Durch die Nutzung -N Option GREP enthält auch Informationen zu einer Zeilennummer, in der die spezifische Zeichenfolge gefunden wurde:

# Grep -rni Bash /etc /*.conf /etc /adduser.conf: 6: dshell =/bin/bash 

Suchen Sie alle Dateien, die keine bestimmte Zeichenfolge enthalten

Das letzte Beispiel wird verwendet -v Option, um alle Dateien aufzulisten, die kein bestimmtes Schlüsselwort enthalten. Beispiel /usw/ Verzeichnis, die keine Zeichenfolge enthalten strecken:

# Grep -rlv Stretch /etc /* 

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
  • Grundlegende Linux -Befehle
  • So finden Sie eine Zeichenfolge oder einen Text in einer Datei unter Linux
  • So grep für Text in Bash -Skripten korrekt Grep
  • Suchen Sie alle Dateien mit spezifischem Text
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • So drucken Sie den Verzeichnisbaum mit Linux
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 4
  • Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 1