Dieses Handbuch führt Sie durch einige der besten Befehlszeilentools, die zum Suchen nach übereinstimmenden Zeichenfolgen oder Mustern in Textdateien verwendet werden. Diese Werkzeuge werden normalerweise neben regulären Ausdrücken verwendet – verkürzt als REGEX – Dies sind eindeutige Zeichenfolgen zur Beschreibung eines Suchmusters.
Lassen Sie uns ohne viel Aufhebens eintauchen.
An erster Stelle steht die grep-Hilfsprogramm – ist ein Akronym für Globaler Druck mit regulären Ausdrücken, ist ein leistungsstarkes Befehlszeilentool, das sich bei der Suche nach einer bestimmten Zeichenfolge oder einem Muster in einer Datei als nützlich erweist.
Grep Schiffe mit moderne Linux-Distributionen standardmäßig und gibt Ihnen die Flexibilität, verschiedene Suchergebnisse zurückzugeben. Mit grep können Sie eine Vielzahl von Funktionen ausführen, wie zum Beispiel:
Die Syntax für die Verwendung der grep Befehl ist ganz einfach:
$ grep-Muster DATEI.
Um beispielsweise nach der Zeichenfolge ‘Linux‘ in einer Datei, sagen wir, hallo.txt Führen Sie den Befehl aus, während Sie die Groß-/Kleinschreibung ignorieren:
$ grep -i Linux hello.txt.
Um mehr Optionen zu erhalten, die Sie mit verwenden können grep, lesen Sie einfach unseren Artikel mit Beispielen mehr Beispiele für erweiterte grep-Befehle.
Sed - kurz für Stream-Editor – ist ein weiteres nützliches Befehlszeilentool für Manipulationstext in einer Textdatei. Sed sucht, filtert und ersetzt Strings in einer bestimmten Datei auf nicht interaktive Weise.
Standardmäßig, sed Befehl druckt die Ausgabe nach STDOUT (Standardausgang), was bedeutet, dass das Ergebnis der Ausführung auf dem Terminal gedruckt wird, anstatt in einer Datei gespeichert zu werden.
Der Befehl Sed wird wie folgt aufgerufen:
$ sed -OPTIONS-Befehl [zu bearbeitende Datei]
Um beispielsweise alle Instanzen von „Unix' 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 gezeigt.
$ sed 's/Unix/Linux' hello.txt > output.txt.
Die Ausgabe des Befehls wird im Ausgabe.txt Datei, anstatt auf dem Bildschirm gedruckt zu werden.
Um weitere Optionen zu sehen, die verwendet werden können, sehen Sie sich noch einmal die Manpages an.
$ Mann sed.
Bestätigen ist ein schnelles und portables Kommandozeilen-Tool, das in Perl geschrieben ist. Bestätigen gilt als freundlicher Ersatz für grep-Dienstprogramm und gibt Ergebnisse optisch ansprechend aus.
Bestätigen Der Befehl durchsucht die Datei oder das Verzeichnis nach den Zeilen, die die Übereinstimmung mit den Suchkriterien enthalten. Es hebt dann die übereinstimmende Zeichenfolge in den Zeilen hervor.
Bestätigen hat die Fähigkeit, Dateien anhand ihrer Dateierweiterungen und bis zu einem gewissen Grad des Inhalts in den Dateien zu unterscheiden.
Syntax des Bestätigungsbefehls:
$ ack [Optionen] MUSTER [DATEI...] $ ack -f [Optionen] [VERZEICHNIS...]
Um beispielsweise nach dem Suchbegriff zu suchen Linux, Lauf:
$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 angegeben, aber ack hat die verfügbare Datei automatisch erkannt und nach dem passenden Muster gesucht.
$ack Linux.
Installieren ack Führen Sie auf Ihrem System den Befehl aus:
$ sudo apt install ack-grep [Unter Debian/Ubuntu] $ sudo dnf install ack-grep [auf CentOS/RHEL]
Awk ist eine vollwertige Skriptsprache und auch ein Textverarbeitungs- und Datenbearbeitungswerkzeug. Es durchsucht Dateien oder Programme, die das Suchmuster enthalten. Wenn die Zeichenfolge oder das Muster gefunden wird, awk ergreift Maßnahmen für das Spiel oder die Linie und druckt die Ergebnisse auf STDOUT.
Das AWK Muster wird zwischen geschweiften Klammern eingeschlossen, während das gesamte Programm in einfache Anführungszeichen eingeschlossen ist.
Nehmen wir das einfachste Beispiel. Angenommen, Sie drucken das Datum Ihres Systems wie gezeigt:
$ Datum.
Angenommen, Sie möchten nur den ersten Wert, den Wochentag, ausdrucken. Leiten Sie in diesem Fall die Ausgabe in awk wie gezeigt:
$ Datum | awk '{print $1}'
Um nachfolgende Werte anzuzeigen, trennen Sie sie wie gezeigt durch ein Komma:
$ Datum | awk '{print $1,$2}'
Der obige Befehl zeigt den Wochentag und das Datum des Monats an.
Um mehr Optionen zu erhalten, die Sie mit verwenden können awk, lesen Sie einfach unsere awk-Befehlsserie.
Das Silbersucher ist ein plattform- und quelloffenes Suchwerkzeug ähnlich wie ack aber mit einem Schwerpunkt auf Geschwindigkeit. Es macht es Ihnen leicht, in kürzester Zeit nach einer bestimmten Zeichenfolge in Dateien zu suchen:
Syntax:
$ ag OPTIONEN Suchmuster /Pfad/zur/Datei.
Um beispielsweise nach der Zeichenfolge ‘Linux‘in einer Datei hallo.txt rufen Sie den Befehl auf:
$ag Linux hello.txt.
Weitere Optionen finden Sie auf den Manpages:
$ Mann ag.
Schließlich haben wir die ripgrep Kommandozeilen-Tool. Rippgrep ist ein plattformübergreifendes Dienstprogramm zum Durchsuchen von Regex-Mustern. Es ist viel schneller als alle oben genannten Suchtools und durchsucht Verzeichnisse rekursiv nach übereinstimmenden Mustern. In puncto Geschwindigkeit und Leistung sticht kein anderes Tool heraus, das Rippgrep.
Standardmäßig, ripgrep überspringt Binärdateien/versteckte Dateien und Verzeichnisse. Beachten Sie auch, dass standardmäßig nicht nach Dateien gesucht wird, die von. ignoriert werden .gitignore/.ignore/.rgignore Dateien.
Rippgrep ermöglicht Ihnen auch die Suche nach bestimmten Dateitypen. Um beispielsweise Ihre Suche einzuschränken auf Javascript Dateien laufen:
$ rg -Tsj.
Die Syntax für die Verwendung von ripgrep ist recht einfach:
$ rg [OPTIONEN] MUSTER [PFAD...]
Beispielsweise. So suchen Sie nach Instanzen der Zeichenfolge „Linux“ Führen Sie in Dateien im aktuellen Verzeichnis den Befehl aus:
$rgLinux.
Installieren ripgrep Führen Sie auf Ihrem System die folgenden Befehle aus:
$ sudo apt install ripgrep [Ein Debian/Ubuntu] $ sudo pacman -S ripgrep [OnArch Linux] $ sudo zypper install ripgrep [EinOpenSuse] $ sudo dnf install ripgrep [EinCentOS/RHEL/Fedora]
Weitere Optionen finden Sie auf den Manpages:
$ Mann rg.
Dies sind einige der am häufigsten verwendeten Befehlszeilentools zum Suchen, Filtern und Bearbeiten von Text unter Linux. Wenn Sie andere Tools haben, die wir Ihrer Meinung nach ausgelassen haben, teilen Sie uns dies im Kommentarbereich mit.