Dieser Leitfaden führt Sie durch einige der besten Befehlszeilentools, die zum Suchen nach übereinstimmenden Zeichenfolgen oder Mustern in Textdateien verwendet werden. Diese Tools werden normalerweise zusammen mit regulären Ausdrücken verwendet – abgekürzt als REGEX – Dies sind eindeutige Zeichenfolgen zur Beschreibung eines Suchmusters.
Lassen Sie uns ohne weiteres Umschweife eintauchen.
1. Grep-Befehl
An erster Stelle steht das Dienstprogramm grep – ein Akronym für Global Regular Expression Print , ist ein leistungsstarkes Befehlszeilentool, das praktisch ist, wenn Sie nach einer bestimmten Zeichenfolge oder einem Muster in einer Datei suchen.
Grep wird standardmäßig mit modernen Linux-Distributionen ausgeliefert und gibt Ihnen die Flexibilität, verschiedene Suchergebnisse zurückzugeben. Mit grep können Sie eine Vielzahl von Funktionen ausführen, wie zum Beispiel:
- Suchen Sie nach Zeichenfolgen oder übereinstimmenden Mustern in einer Datei.
- Suchen Sie nach Zeichenfolgen oder übereinstimmenden Mustern in gzippten Dateien.
- Zählen Sie die Anzahl der Zeichenfolgenübereinstimmungen.
- Drucken Sie die Zeilennummern, die die Zeichenfolge oder das Muster enthalten.
- Suche rekursiv nach der Zeichenfolge in Verzeichnissen.
- Führen Sie eine umgekehrte Suche durch (d. h. Ergebnisse von Zeichenfolgen anzeigen, die nicht den Suchkriterien entsprechen).
- Groß-/Kleinschreibung bei der Suche nach Zeichenfolgen ignorieren.
Die Syntax für die Verwendung von grep Befehl ist ganz einfach:
$ grep pattern FILE
Um beispielsweise nach der Zeichenfolge „Linux“ zu suchen ‘ in einer Datei, sagen wir, hello.txt Führen Sie den Befehl aus, während Sie die Groß-/Kleinschreibung ignorieren:
$ grep -i Linux hello.txt
Um weitere Optionen zu erhalten, die Sie mit grep verwenden können , lesen Sie einfach unseren Artikel mit Beispielen für fortgeschrittenere grep-Befehle.
2. sed-Befehl
Sed – Abkürzung für Stream Editor – ist ein weiteres nützliches Befehlszeilentool zum Bearbeiten von Text in einer Textdatei. Sed sucht, filtert und ersetzt Zeichenfolgen in einer bestimmten Datei auf nicht interaktive Weise.
Standardmäßig sed Befehl gibt die Ausgabe auf STDOUT aus (Standardausgabe ), was bedeutet, dass das Ergebnis der Ausführung auf dem Terminal gedruckt wird, anstatt in einer Datei gespeichert zu werden.
Der Sed-Befehl wird wie folgt aufgerufen:
$ sed -OPTIONS command [ file to be edited ]
Um beispielsweise alle Instanzen von „Unix“ zu ersetzen “ mit „Linux ‘, rufen Sie den Befehl auf:
$ sed 's/Unix/Linux' hello.txt
Wenn Sie die Ausgabe umleiten möchten, anstatt sie auf dem Terminal zu drucken, verwenden Sie das Umleitungszeichen ( > )
wie abgebildet.
$ sed 's/Unix/Linux' hello.txt > output.txt
Die Ausgabe des Befehls wird in output.txt gespeichert Datei, anstatt auf dem Bildschirm gedruckt zu werden.
Weitere verwendbare Optionen finden Sie auf den Manpages.
$ man sed
3. Bestätigungsbefehl
Bestätigen ist ein schnelles und portables Befehlszeilentool, das in Perl geschrieben ist. Bestätigen wird als freundlicher Ersatz für das grep-Dienstprogramm betrachtet und gibt Ergebnisse optisch ansprechend aus.
Bestätigen durchsucht die Datei oder das Verzeichnis nach den Zeilen, die die Übereinstimmung mit den Suchkriterien enthalten. Dann wird die übereinstimmende Zeichenfolge in den Zeilen hervorgehoben.
Ack hat die Fähigkeit, Dateien anhand ihrer Dateierweiterungen und bis zu einem gewissen Grad des Inhalts der Dateien zu unterscheiden.
Ack-Befehlssyntax:
$ ack [options] PATTERN [FILE...] $ ack -f [options] [DIRECTORY...]
Zum Beispiel, um nach dem Suchbegriff Linux zu suchen , ausführen:
$ ack Linux hello.txt
Das Suchwerkzeug ist ziemlich intelligent und wenn vom Benutzer keine Datei oder kein Verzeichnis angegeben wird, durchsucht es das aktuelle Verzeichnis und die Unterverzeichnisse nach dem Suchmuster.
Im Beispiel unten wurde keine Datei oder kein Verzeichnis bereitgestellt, aber ack hat die verfügbare Datei automatisch erkannt und nach dem bereitgestellten übereinstimmenden Muster gesucht.
$ ack Linux
Um ack zu installieren Führen Sie auf Ihrem System den folgenden Befehl aus:
$ sudo apt install ack-grep [On Debian/Ubuntu] $ sudo dnf install ack-grep [On CentOS/RHEL]
4. Awk-Befehl
Ach ist eine vollwertige Skriptsprache und auch ein Werkzeug zur Textverarbeitung und Datenmanipulation. Es durchsucht Dateien oder Programme, die das Suchmuster enthalten. Wenn die Zeichenfolge oder das Muster gefunden wird, awk führt eine Aktion auf das Spiel oder die Linie aus und gibt die Ergebnisse auf STDOUT aus .
Das AWK Muster wird zwischen geschweiften Klammern eingeschlossen, während das gesamte Programm in einfache Anführungszeichen eingeschlossen wird.
Nehmen wir das einfachste Beispiel. Nehmen wir an, Sie drucken das Datum Ihres Systems wie gezeigt:
$ date
Angenommen, Sie möchten nur den ersten Wert, also den Wochentag, ausdrucken. Leiten Sie in diesem Fall die Ausgabe an awk weiter wie gezeigt:
$ date | awk '{print $1}'
Um nachfolgende Werte anzuzeigen, trennen Sie sie wie gezeigt durch ein Komma:
$ date | awk '{print $1,$2}'
Der obige Befehl zeigt den Wochentag und das Datum des Monats an.
Um weitere Optionen zu erhalten, die Sie mit awk verwenden können , lesen Sie einfach unsere awk-Befehlsserie.
5. Silbersucher
Der Silbersucher ist ein plattformübergreifendes und Open-Source-Code-Suchwerkzeug, ähnlich wie ack aber mit Betonung auf Schnelligkeit. Es macht es Ihnen leicht, in kürzester Zeit nach einer bestimmten Zeichenfolge in Dateien zu suchen:
Syntax:
$ ag OPTIONS search_pattern /path/to/file
Um beispielsweise nach der Zeichenfolge „Linux“ zu suchen ‘ in einer Datei hello.txt Rufen Sie den Befehl auf:
$ ag Linux hello.txt
Weitere Optionen finden Sie auf den Manpages:
$ man ag
6. Rippgrep
Schließlich haben wir das Befehlszeilentool ripgrep. Ripgrep ist ein plattformübergreifendes Dienstprogramm zum Suchen von Regex-Mustern. Es ist viel schneller als alle zuvor erwähnten Suchwerkzeuge und durchsucht Verzeichnisse rekursiv nach übereinstimmenden Mustern. In Bezug auf Geschwindigkeit und Leistung sticht kein anderes Tool so hervor wie Ripgrep .
Standardmäßig ripgrep überspringt Binärdateien/versteckte Dateien und Verzeichnisse. Beachten Sie auch, dass standardmäßig nicht nach Dateien gesucht wird, die von .gitignore/.ignore/.rgignore ignoriert werden Dateien.
Ripgrep ermöglicht Ihnen auch, nach bestimmten Dateitypen zu suchen. Zum Beispiel, um Ihre Suche auf Javascript zu beschränken Dateien laufen:
$ rg -Tsj
Die Syntax für die Verwendung von ripgrep ist recht einfach:
$ rg [OPTIONS] PATTERN [PATH...]
Zum Beispiel. So suchen Sie nach Instanzen der Zeichenfolge ‘Linux’ Führen Sie in Dateien, die sich im aktuellen Verzeichnis befinden, den folgenden Befehl aus:
$ rg Linux
Um ripgrep zu installieren Führen Sie auf Ihrem System die folgenden Befehle aus:
$ sudo apt install ripgrep [On Debian/Ubuntu] $ sudo pacman -S ripgrep [On Arch Linux] $ sudo zypper install ripgrep [On OpenSuse] $ sudo dnf install ripgrep [On CentOS/RHEL/Fedora]
Weitere Optionen finden Sie auf den Manpages:
$ man rg
Dies sind einige der am häufigsten verwendeten Befehlszeilentools zum Suchen, Filtern und Bearbeiten von Text in Linux. Wenn Sie andere Tools haben, die wir Ihrer Meinung nach ausgelassen haben, teilen Sie uns dies im Kommentarbereich mit.