Website-Suche

Die 6 besten CLI-Tools zum Durchsuchen von Klartextdaten mithilfe regulärer Ausdrücke


In diesem Handbuch werden einige der besten Befehlszeilentools vorgestellt, die zum Suchen nach übereinstimmenden Zeichenfolgen oder Mustern in Textdateien verwendet werden. Diese Tools werden normalerweise zusammen mit regulären Ausdrücken – abgekürzt als REGEX – verwendet, bei denen es sich um eindeutige Zeichenfolgen zur Beschreibung eines Suchmusters handelt.

Lassen Sie uns ohne große Umschweife eintauchen.

1. Grep-Befehl

An erster Stelle steht das Dienstprogramm grep – ein Akronym für Global Regular Expression Print – ein leistungsstarkes Befehlszeilentool, das sich bei der Suche nach einer bestimmten Zeichenfolge oder einem Muster in einer Datei als nützlich erweist .

Grep wird standardmäßig mit modernen Linux-Distributionen geliefert und bietet 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 passenden Mustern in einer Datei.
  • Suchen Sie in Gzip-Dateien nach Zeichenfolgen oder passenden Mustern.
  • Zählen Sie die Anzahl der Zeichenfolgenübereinstimmungen.
  • Gibt die Zeilennummern aus, die die Zeichenfolge oder das Muster enthalten.
  • Suchen Sie rekursiv nach der Zeichenfolge in Verzeichnissen.
  • Führen Sie eine umgekehrte Suche durch (d. h. Ergebnisse von Zeichenfolgen anzeigen, die nicht den Suchkriterien entsprechen).
  • Ignorieren Sie die Groß-/Kleinschreibung bei der Suche nach Zeichenfolgen.

Die Syntax für die Verwendung des Befehls grep ist recht einfach:

grep pattern FILE

Um beispielsweise nach der Zeichenfolge „Linux“ in einer Datei zu suchen, beispielsweise hello.txt, und dabei die Groß-/Kleinschreibung zu ignorieren, führen Sie den folgenden Befehl aus:

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 – kurz 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 gibt der Befehl sed die Ausgabe auf STDOUT (Standard Out) aus, was bedeutet, dass das Ergebnis der Ausführung nicht auf dem Terminal gedruckt wird in einer Datei gespeichert wird.

Der Sed-Befehl wird wie folgt aufgerufen:

sed -OPTIONS command [ file to be edited ]

Um beispielsweise alle Instanzen von „Unix“ durch „Linux“ zu ersetzen, rufen Sie den folgenden 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 gezeigt.

sed 's/Unix/Linux' hello.txt > output.txt

Die Ausgabe des Befehls wird in der Datei output.txt gespeichert und nicht auf dem Bildschirm gedruckt.

Weitere mögliche Optionen finden Sie in den Manpages.

man sed

3. Befehl bestätigen

Ack ist ein schnelles und portables Befehlszeilentool, das in Perl geschrieben ist. Ack gilt als freundlicher Ersatz für das grep-Dienstprogramm und gibt Ergebnisse auf optisch ansprechende Weise aus.

Der Befehl Ack durchsucht die Datei oder das Verzeichnis nach Zeilen, die die Übereinstimmung mit den Suchkriterien enthalten. Anschließend wird die passende Zeichenfolge in den Zeilen hervorgehoben.
Ack ist in der Lage, Dateien anhand ihrer Dateierweiterungen und bis zu einem gewissen Grad anhand des Inhalts der Dateien zu unterscheiden.

Syntax des Ack-Befehls:

ack [options] PATTERN [FILE...]
ack -f [options] [DIRECTORY...]

Um beispielsweise nach dem Suchbegriff Linux zu suchen, führen Sie Folgendes aus:

ack Linux hello.txt

Das Suchtool ist recht intelligent. Wenn der Benutzer keine Datei oder kein Verzeichnis bereitstellt, durchsucht es das aktuelle Verzeichnis und die Unterverzeichnisse nach dem Suchmuster.

Im folgenden Beispiel wurde keine Datei oder kein Verzeichnis angegeben, aber ack hat die verfügbare Datei automatisch erkannt und nach dem bereitgestellten passenden Muster gesucht.

ack Linux

Um ack auf Ihrem System zu installieren, führen Sie den folgenden Befehl aus:

sudo apt install ack-grep    [On Debian/Ubuntu]
sudo dnf install ack-grep    [On CentOS/RHEL]

4. Awk-Befehl

Awk ist eine vollwertige Skriptsprache und außerdem ein Textverarbeitungs- und Datenmanipulationstool. Es durchsucht Dateien oder Programme, die das Suchmuster enthalten. Wenn die Zeichenfolge oder das Muster gefunden wird, ergreift awk Maßnahmen für die Übereinstimmung oder Zeile und gibt die Ergebnisse auf STDOUT aus.

Das AWK-Muster wird in geschweifte Klammern eingeschlossen, während das gesamte Programm in einfache Anführungszeichen gesetzt wird.

Nehmen wir das einfachste Beispiel. Nehmen wir an, Sie drucken das Datum Ihres Systems wie gezeigt aus:

date

Angenommen, Sie möchten nur den ersten Wert ausdrucken, der den Wochentag darstellt. In diesem Fall leiten Sie die Ausgabe wie gezeigt an awk weiter:

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 Silver Searcher ist ein plattformübergreifendes und Open-Source-Code-Suchtool, das ack ähnelt, jedoch den Schwerpunkt auf Geschwindigkeit legt. Es erleichtert Ihnen die Suche nach einer bestimmten Zeichenfolge in Dateien in kürzester Zeit:

Syntax :

ag OPTIONS search_pattern /path/to/file

Um beispielsweise nach der Zeichenfolge „Linux“ in einer Datei hello.txt zu suchen, rufen Sie den folgenden Befehl auf:

ag Linux hello.txt

Weitere Optionen finden Sie auf den Manpages:

man ag

6. Ripgrep

Schließlich haben wir das Befehlszeilentool ripgrep. Ripgrep ist ein plattformübergreifendes Dienstprogramm zur Suche nach Regex-Mustern. Es ist viel schneller als alle zuvor genannten Suchtools und durchsucht Verzeichnisse rekursiv nach passenden Mustern. In puncto Geschwindigkeit und Leistung sticht kein anderes Tool hervor als Ripgrep.

Standardmäßig überspringt ripgrep Binärdateien/versteckte Dateien und Verzeichnisse. Beachten Sie außerdem, dass standardmäßig nicht nach Dateien gesucht wird, die von .gitignore/.ignore/.rgignore-Dateien ignoriert werden.

Mit Ripgrep können Sie auch nach bestimmten Dateitypen suchen. Um Ihre Suche beispielsweise auf Javascript-Dateien zu beschränken, führen Sie Folgendes aus:

rg -Tsj

Die Syntax für die Verwendung von Ripgrep ist recht einfach:

rg [OPTIONS] PATTERN [PATH...]

Zum Beispiel. Um nach Instanzen der Zeichenfolge „Linux“ in Dateien im aktuellen Verzeichnis zu suchen, führen Sie den folgenden Befehl aus:

rg Linux

Um ripgrep auf Ihrem System zu installieren, führen Sie 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 unter Linux. Wenn Sie über andere Tools verfügen, die wir Ihrer Meinung nach vergessen haben, teilen Sie uns dies bitte im Kommentarbereich mit.