GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So finden Sie eine Zeichenfolge in einer Datei unter Linux

Manchmal müssen Sie möglicherweise nach einem bestimmten Wort oder einer Zeichenfolge in einer Datei suchen. Zu diesem Zweck verfügt fast jeder Texteditor über eine GUI-Implementierung, die Ihnen dabei hilft. Für Linux-Benutzer ist es jedoch viel produktiver und bequemer, diese Suchen über die Befehlszeile durchzuführen.

Tatsächlich verfügt Linux über ein leistungsstarkes und praktisches Befehlszeilenprogramm – den Befehl grep für diesen Zweck. Damit können Sie nicht nur in einer Datei, sondern für eine umfassendere Suche in mehreren Dateien nach einer bestimmten Zeichenfolge suchen.

Bevor Sie jedoch den grep-Befehl verwenden können, müssen Sie zunächst wissen, wie er funktioniert und welche Syntax er hat. Um Ihnen zu helfen, haben wir eine detaillierte Anleitung zur Verwendung des Befehls grep zusammengestellt, die Ihnen hilft, Zeichenfolgen in einer Datei unter Linux zu finden. Nicht nur das, wir zeigen Ihnen auch, wie Sie mit dem Befehlszeilen-Texteditor und dem GUI-Texteditor nach Zeichenfolgen in Dateien suchen.

Hinweis:Für dieses Tutorial haben wir zwei Demo-Textdateien erstellt – demofile.txt und demofile02.txt. Wir werden den Befehl grep verwenden, um Zeichenfolgen in diesen Dateien zu finden. Hier ist ein Blick auf den Inhalt dieser beiden Dateien, damit Sie wissen, wie die Befehle funktionieren.

Inhalt der demofile.txt:

This is a demo file that I have created for demonstration purposes.
This contains a bunch of words to create sentences that finally end with a period.
This is for the grep example.

Inhalt von demofile02.txt:

This is another demo file that I'll use for this demonstration.
This one is similar to the last one as it contains three lines with some words.
This second file will help to provide some diversified examples.

Strings in einer Datei über die Kommandozeile finden (GREP-Methode)

GREP ist die Abkürzung für Global Regular Expression Print. Es ist „global“, weil es Ihr gesamtes Linux-System durchsuchen kann. „Regulärer Ausdruck“ nennen wir das Textsuchmuster, das wir mit dem Befehl verwenden werden. Und „Drucken“ bedeutet, dass die Suchergebnisse gedruckt werden, sobald eine Übereinstimmung basierend auf dem bereitgestellten regulären Ausdruck gefunden wird.

Nachdem Sie nun eine Vorstellung davon haben, was der grep-Befehl ist, sehen wir uns an, wie wir ihn verwenden können. Hier ist die Syntax für die Verwendung des grep-Befehls, um eine Zeichenfolge in einer Datei zu finden:

$ grep string filename

Sie müssen den Ausdruck „Zeichenfolge“ durch den „regulären Ausdruck“ ersetzen, den Sie verwenden möchten, und den „Dateinamen“ durch den Namen der Datei, in der Sie nach der Zeichenfolge suchen möchten.

#1. Verwenden von GREP, um einen String in einer Datei zu finden

Nehmen wir also an, wenn Sie nach dem Wort „Demonstration“ in der Datei „demofile.txt“ suchen möchten, müssen Sie diesen Befehl verwenden:

$ grep demonstration demofile.txt

Was die Ausgabe ergibt:

Wie Sie sehen können, ruft der Befehl die gesamte Zeile ab, die die bereitgestellte Zeichenfolge enthält. Wenn die angegebene Zeichenfolge in mehreren Zeilen vorkommt, werden alle ausgegeben. Lassen Sie uns sehen, ob es funktioniert, indem Sie in der Datei „demofile.txt“ nach der Zeichenfolge „This“ suchen.

$ grep This demofile.txt

Und die Ausgabe ist:

Beachten Sie, wie Sie zuerst die Zeichenfolge „this“ verwendet haben und nichts gedruckt wurde. Nur wenn Sie „This“ eingeben, erhalten Sie eine Übereinstimmung. Daher sollten Sie daran denken, dass beim grep-Befehl zwischen Groß- und Kleinschreibung unterschieden wird.

Um die Groß-/Kleinschreibung zu ignorieren, müssen Sie stattdessen diesen Befehl eingeben:

$ grep -i this demofile.txt

Wie Sie jetzt sehen können, stimmt der Befehl mit „This“ überein und gibt diese Antwort aus, obwohl die bereitgestellte Zeichenfolge „this“ lautet.

#2. Verwenden von GREP, um denselben String in mehreren Dateien zu finden

Um mehrere Dateien nach der angegebenen Zeichenfolge zu durchsuchen, müssen Sie lediglich den Befehl mit allen Dateinamen anhängen.

Hier ist ein Beispiel. Hier suchen wir in den Dateien „demofile.txt“ und „demofile02.txt“ nach dem String „words“:

$ grep words demofile.txt demofile02.txt

Und die Ausgabe ist:

Wie Sie sehen können, zeigt Ihnen der grep-Befehl nicht nur das übereinstimmende Ergebnis, sondern kennzeichnet auch bequem, aus welcher Datei es stammt.

#3. Verwenden von GREP, um mehrere Zeichenfolgen in mehreren Dateien zu finden

Sie können auch grep verwenden, um mehrere Zeichenfolgen in einzelnen oder mehreren Dateien zu finden. Dies ist die Syntax, die Sie verwenden müssen:

$ grep -E 'pattern1|pattern2|pattern3|...' filename1 filename2 filename3 ...

Die von uns eingegebene Option -E behandelt das folgende Muster als erweiterten regulären Ausdruck, der es uns ermöglicht, nach mehreren Zeichenfolgen zu suchen.

Lassen Sie uns nun das Gelernte verwenden, um in den beiden Dateien „demofile.txt“ und „demofile02.txt“ nach den Zeichenfolgen „file“ und „words“ zu suchen:

$ grep -E 'file|word' demofile.txt demofile02.txt

Und die Ausgabe ist:

#4. Tipps und Tricks zur Verwendung des GREP-Befehls zum Suchen von Zeichenfolgen

Trotz seiner allgemeinen Einfachheit ist der grep-Befehl extrem leistungsfähig. Hier sind einige Möglichkeiten, wie Sie den grep-Befehl für erweiterte Zeichenfolgensuchen verwenden können.

Wussten Sie zum Beispiel, dass Sie den Befehl grep mit Platzhaltern verwenden können? Betrachten wir diesen Befehl:

$ grep word demofile*

Was die Ausgabe ergibt:

Wie Sie sehen können, hat der Befehl nach beiden Dateien „demofile.txt“ und „demofile02.txt“ gesucht und zeigt nun die Ergebnisse an. Dies liegt daran, dass wir den Stern (*) als Platzhalter verwendet haben, der verwendet wird, um ein oder mehrere Vorkommen eines beliebigen Zeichens darzustellen.

Weitere Informationen zu den verschiedenen Arten von Platzhaltern und ihrer Verwendung finden Sie hier:Platzhalter in Linux erklärt mit 10 Beispielen.

Weiter unterstützt der Befehl grep auch unzählige Befehlsoptionen. Zwei davon haben wir inzwischen schon gesehen:

  • -i:Wird verwendet, um die Groß-/Kleinschreibung zu ignorieren.
  • -E:Wird verwendet, um die folgende Zeichenfolge als erweiterten regulären Ausdruck zu behandeln.

Es gibt viele andere grep-Befehlsoptionen wie:

  • -r:Führen Sie eine rekursive Suche durch.
  • -c:Zähle, wie oft der String insgesamt vorgekommen ist.
  • -n:Gibt die Zeilennummer aus, in der die Zeichenfolge vorkam.
  • -o:drucke nur den passenden String und nicht die ganze Zeile.

Alles, was wir bisher besprochen haben, sollte Ihnen bei der Suche nach Zeichenketten in Dateien helfen. Wenn Sie jedoch den GREP-Befehl beherrschen möchten, empfehlen wir Ihnen, diese beiden Artikel zu lesen:

  • Verwendung des GREP-Befehls unter Linux mit Beispielen 
  • Die 5 häufigsten Verwendungen des GREP-Befehls in Linux 

Strings in einer Datei über die Befehlszeile finden (mit Befehlszeilen-Texteditoren)

Der Befehl grep ist ein leistungsstarkes Tool, mit dem Sie erweiterte Suchen durchführen können, um Zeichenfolgen mit mehreren Dateien und Verzeichnissen auf Ihrem Linux-PC abzugleichen. Wenn Sie die Datei jedoch bereits in einem Befehlszeilen-Texteditor geöffnet haben, müssen Sie den Dateieditor nicht verlassen und den Befehl grep verwenden.

Tatsächlich haben die meisten Kommandozeilen-Texteditoren bereits eine eingebaute Suchfunktion.

Nun, es würde den Rahmen dieses Tutorials sprengen, jeden einzelnen Befehlszeilen-Texteditor zu behandeln und wie man Zeichenfolgen in einer Datei findet, die in diesem Texteditor geöffnet ist. Daher werden wir uns die beiden beliebtesten Befehlszeilen-Texteditoren ansehen, die Sie sicherlich verwenden werden:

Wie finde ich eine Textzeichenfolge in Nano?

Angenommen, Sie haben die Datei im Nano-Texteditor geöffnet. In diesem Fall brauchen Sie nur Strg+W zu drücken, und Sie werden eine neue Eingabeaufforderung finden, um die Zeichenfolge einzugeben.

Wenn Sie fertig sind, drücken Sie die Eingabetaste, und der Cursor landet auf dem ersten Zeichen des ersten Vorkommens der gesuchten Zeichenfolge. Sie können weiterhin die Eingabetaste drücken, um zu den anderen String-Instanzen zu springen, falls vorhanden.

Wie finde ich eine Textzeichenfolge in vim?

Wenn Sie den vim-Texteditor verwenden, können Sie :/ gefolgt von der Zeichenfolge eingeben, nach der Sie suchen möchten, und dann die Eingabetaste drücken. Ähnlich wie zuvor landet der Cursor beim ersten Vorkommen der gesuchten Zeichenfolge. Auch hier können Sie durch wiederholtes Drücken der Eingabetaste zu den anderen Instanzen der Zeichenfolge springen.

Strings in einer Datei über die Kommandozeile finden (GUI-Methode)

Es gibt sogar eine GUI-Methode zum Suchen von Zeichenfolgen in einer Datei. Im Wesentlichen ähnelt es der Funktion „Suchen und Ersetzen“, die Sie in Microsoft Word sehen. es hängt jedoch davon ab, welchen GUI-Texteditor Sie verwenden.

Nun, wie Sie wissen, gibt es Hunderte von Texteditoren, und es ist nicht praktikabel, sie alle hier zu behandeln. Sie funktionieren jedoch alle ähnlich, sodass Sie keine Probleme haben werden, mit anderen zusammenzuarbeiten, sobald Sie wissen, wie einer von ihnen funktioniert.

Für dieses Tutorial verwenden wir den mit Ubuntu gelieferten Standard-Texteditor mit dem Namen „Text Editor“.

Wie Sie dem Bild entnehmen können, haben wir die demofile.txt im Editor geöffnet. Jetzt klicken wir auf das Dropdown-Menü, das Optionen für „Suchen“ und „Suchen und Ersetzen“ anzeigt, mit denen wir beliebige Zeichenfolgen in der geöffneten Datei finden können.

Abschluss

Damit sind wir am Ende dieses kurzen Tutorials zum Suchen von Zeichenfolgen in einer Datei unter Linux angelangt. Wir hoffen, dass Sie dies nützlich finden und dass es Ihnen geholfen hat, bei der Suche nach bestimmten Zeichenfolgen auf Ihrem Linux-System produktiver zu werden.

Wenn Sie Fragen haben, hinterlassen Sie uns einen Kommentar und wir helfen Ihnen gerne bei Ihren Fragen weiter.

Wenn Sie mit Linux beginnen, vergessen Sie nicht, sich unsere Learn Linux-Serie anzusehen. Es ist gefüllt mit unzähligen fantastischen Tutorials, Anleitungen und Leitfäden, die für Anfänger und erfahrene Benutzer entwickelt wurden, um Ihnen dabei zu helfen, ein echter Linux-Power-User zu werden.


Linux
  1. Linux – Wie finde ich das Erstellungsdatum der Datei?

  2. Wie benenne ich eine Datei unter Linux um?

  3. So finden Sie unter Linux Zeilen, die eine Zeichenfolge enthalten

  4. Wie grep \n in Datei

  5. Wie stellt man eine entfernte Datei unter Linux wieder her?

So finden Sie den Hostnamen unter Linux

Linux-Berechtigungen – So finden Sie Berechtigungen einer Datei

So verknüpfen Sie eine Datei unter Linux per Symlink

So finden Sie Dateien basierend auf dem Zeitstempel in Linux

So finden Sie Dateien, die eine bestimmte Textzeichenfolge in Linux enthalten

So finden Sie die längste(n) Zeile(n) in einer Datei in Linux