Verwendung von Grep & regulären Ausdrücken zum Suchen von Textmustern in Linux

Einführung

Der Befehl grep ist einer der nützlichsten Befehle in einer Linux-Terminalumgebung. Der Name grep steht für „global regular expression print“. Dies bedeutet, dass Sie grep verwenden können, um zu überprüfen, ob die Eingabe, die es erhält, einem bestimmten Muster entspricht. Dieses scheinbar triviale Programm ist äußerst leistungsstark; seine Fähigkeit, Eingaben basierend auf komplexen Regeln zu sortieren, macht es zu einem beliebten Element in vielen Befehlsketten.

In diesem Tutorial werden Sie die Optionen des Befehls grep erkunden und dann in die Verwendung von regulären Ausdrücken eintauchen, um fortgeschrittenere Suchvorgänge durchzuführen.

Voraussetzungen

Um diesem Leitfaden zu folgen, benötigen Sie Zugriff auf einen Computer, der ein Linux-basiertes Betriebssystem ausführt. Dies kann entweder ein virtueller privater Server sein, mit dem Sie über SSH verbunden sind, oder Ihr lokaler Computer. Beachten Sie, dass dieses Tutorial unter Verwendung eines Linux-Servers, der Ubuntu 20.04 ausführt, validiert wurde, aber die gegebenen Beispiele auf einem Computer mit jeder Version einer beliebigen Linux-Distribution funktionieren sollten.

Wenn Sie planen, einen Remote-Server zu verwenden, um dieser Anleitung zu folgen, empfehlen wir Ihnen, zuerst unseren Anleitung zur Initialisierung des Servers abzuschließen. Dadurch werden Sie mit einer sicheren Serverumgebung eingerichtet – einschließlich eines nicht-root-Benutzers mit sudo-Berechtigungen und einer Firewall, die mit UFW konfiguriert ist – die Sie nutzen können, um Ihre Linux-Fähigkeiten aufzubauen.

Grundlegende Nutzung

In diesem Tutorial verwenden Sie grep, um die GNU General Public License Version 3 nach verschiedenen Wörtern und Phrasen zu durchsuchen.

Wenn Sie ein Ubuntu-System verwenden, finden Sie die Datei im Ordner /usr/share/common-licenses. Kopieren Sie sie in Ihr Home-Verzeichnis:

  1. cp /usr/share/common-licenses/GPL-3 .

Wenn Sie ein anderes System verwenden, verwenden Sie den curl-Befehl, um eine Kopie herunterzuladen:

  1. curl -o GPL-3 https://www.gnu.org/licenses/gpl-3.0.txt

Sie werden auch die BSD-Lizenzdatei in diesem Tutorial verwenden. Auf Linux können Sie diese mit folgendem Befehl in Ihr Home-Verzeichnis kopieren:

  1. cp /usr/share/common-licenses/BSD .

Wenn Sie ein anderes System verwenden, erstellen Sie die Datei mit folgendem Befehl:

  1. cat << 'EOF' > BSD
  2. Copyright (c) The Regents of the University of California.
  3. All rights reserved.
  4. Redistribution and use in source and binary forms, with or without
  5. modification, are permitted provided that the following conditions
  6. are met:
  7. 1. Redistributions of source code must retain the above copyright
  8. notice, this list of conditions and the following disclaimer.
  9. 2. Redistributions in binary form must reproduce the above copyright
  10. notice, this list of conditions and the following disclaimer in the
  11. documentation and/or other materials provided with the distribution.
  12. 3. Neither the name of the University nor the names of its contributors
  13. may be used to endorse or promote products derived from this software
  14. without specific prior written permission.
  15. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  16. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  17. IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  18. ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  19. FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  20. DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  21. OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  22. HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  23. LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  24. OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  25. SUCH DAMAGE.
  26. EOF

Jetzt, da Sie die Dateien haben, können Sie mit grep arbeiten.

In der einfachsten Form verwenden Sie grep, um wörtliche Muster innerhalb einer Textdatei abzugleichen. Das bedeutet, dass wenn Sie grep ein Wort zum Suchen übergeben, es jede Zeile in der Datei ausdrucken wird, die dieses Wort enthält.

Führen Sie den folgenden Befehl aus, um grep zu verwenden und nach jeder Zeile zu suchen, die das Wort GNU enthält:

  1. grep "GNU" GPL-3

Das erste Argument, GNU, ist das Muster, nach dem Sie suchen, während das zweite Argument, GPL-3, die Eingabedatei ist, die Sie durchsuchen möchten.

Die resultierende Ausgabe wird jede Zeile enthalten, die den Muster-Text enthält:

Output
GNU GENERAL PUBLIC LICENSE The GNU General Public License is a free, copyleft license for the GNU General Public License is intended to guarantee your freedom to GNU General Public License for most of our software; it applies also to Developers that use the GNU GPL protect your rights with two steps: "This License" refers to version 3 of the GNU General Public License. 13. Use with the GNU Affero General Public License. under version 3 of the GNU Affero General Public License into a single ... ...

Auf einigen Systemen wird das gesuchte Muster in der Ausgabe hervorgehoben.

Gemeinsame Optionen

Standardmäßig sucht grep nach dem exakt angegebenen Muster in der Eingabedatei und gibt die gefundenen Zeilen zurück. Sie können dieses Verhalten jedoch nützlicher machen, indem Sie einige optionale Flags zu grep hinzufügen.

Wenn Sie möchten, dass grep die „Groß- und Kleinschreibung“ Ihres Suchparameters ignoriert und nach Variationen in Groß- und Kleinschreibung sucht, können Sie die Option -i oder --ignore-case angeben.

Suchen Sie in derselben Datei wie zuvor mit folgendem Befehl nach jeder Instanz des Wortes license (mit Groß-, Klein- oder gemischter Schreibung):

  1. grep -i "license" GPL-3

Die Ergebnisse enthalten: LICENSE, license und License:

Output
GNU GENERAL PUBLIC LICENSE of this license document, but changing it is not allowed. The GNU General Public License is a free, copyleft license for The licenses for most software and other practical works are designed the GNU General Public License is intended to guarantee your freedom to GNU General Public License for most of our software; it applies also to price. Our General Public Licenses are designed to make sure that you (1) assert copyright on the software, and (2) offer you this License "This License" refers to version 3 of the GNU General Public License. "The Program" refers to any copyrightable work licensed under this ... ...

Wenn es eine Instanz mit LiCeNsE gäbe, wäre diese ebenfalls zurückgegeben worden.

Wenn Sie alle Zeilen finden möchten, die nicht ein bestimmtes Muster enthalten, können Sie die Option -v oder --invert-match verwenden.

Suchen Sie nach jeder Zeile, die das Wort the nicht im BSD-Lizenztext enthält, mit dem folgenden Befehl:

  1. grep -v "the" BSD

Sie erhalten diese Ausgabe:

Output
All rights reserved. Redistribution and use in source and binary forms, with or without are met: may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ... ...

Weil Sie die Option „Groß-/Kleinschreibung ignorieren“ nicht angegeben haben, wurden die letzten beiden Elemente als ohne das Wort the zurückgegeben.

Es ist oft nützlich zu wissen, auf welcher Zeilennummer die Übereinstimmungen auftreten. Dies können Sie durch Verwendung der Option -n oder --line-number erreichen. Führen Sie das vorherige Beispiel mit dieser Flagge erneut aus:

  1. grep -vn "the" BSD

Dies gibt den folgenden Text zurück:

Output
2:All rights reserved. 3: 4:Redistribution and use in source and binary forms, with or without 6:are met: 13: may be used to endorse or promote products derived from this software 14: without specific prior written permission. 15: 16:THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17:ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ... ...

Jetzt können Sie die Zeilennummer referenzieren, wenn Sie Änderungen an jeder Zeile vornehmen möchten, die the nicht enthält. Dies ist besonders praktisch beim Arbeiten mit Quellcode.

Reguläre Ausdrücke

In der Einleitung haben Sie gelernt, dass grep für „global regular expression print“ steht. Ein „regulärer Ausdruck“ ist eine Textzeichenfolge, die ein bestimmtes Suchmuster beschreibt.

Verschiedene Anwendungen und Programmiersprachen implementieren reguläre Ausdrücke leicht unterschiedlich. In diesem Tutorial werden Sie nur einen kleinen Teil der Art und Weise erkunden, wie grep seine Muster beschreibt.

Wörtliche Übereinstimmungen

In den vorherigen Beispielen in diesem Tutorial, als Sie nach den Wörtern GNU und the gesucht haben, haben Sie tatsächlich nach einfachen regulären Ausdrücken gesucht, die genau die Zeichenfolge GNU und the entsprechen. Muster, die genau die zu suchenden Zeichen angeben, werden „wörtlich“ genannt, weil sie das Muster buchstäblich, Zeichen für Zeichen, entsprechen.

Es ist hilfreich, sich diese als Übereinstimmung einer Zeichenfolge von Zeichen vorzustellen, anstatt eines Wortes. Diese Unterscheidung wird wichtiger, wenn Sie komplexere Muster lernen.

Alle alphabetischen und numerischen Zeichen (sowie bestimmte andere Zeichen) werden buchstäblich übereinstimmend, es sei denn, sie werden durch andere Ausdrucksmechanismen modifiziert.

Verankerungsübereinstimmungen

Verankerungen sind spezielle Zeichen, die angeben, wo in der Zeile eine Übereinstimmung gültig sein muss.

Zum Beispiel können Sie mithilfe von Verankerungen angeben, dass Sie nur die Zeilen wissen möchten, die GNU ganz am Anfang der Zeile entsprechen. Um dies zu tun, könnten Sie das ^-Zeichen vor der wörtlichen Zeichenfolge verwenden.

Führen Sie den folgenden Befehl aus, um die GPL-3-Datei zu durchsuchen und Zeilen zu finden, in denen GNU am Anfang einer Zeile steht:

  1. grep "^GNU" GPL-3

Dieser Befehl gibt die folgenden zwei Zeilen zurück:

Output
GNU General Public License for most of our software; it applies also to GNU General Public License, you may choose any version ever published

Ähnlich verwenden Sie das Ankerzeichen $ am Ende eines Musters, um anzugeben, dass die Übereinstimmung nur gültig ist, wenn sie am Ende einer Zeile auftritt.

Dieser Befehl entspricht jeder Zeile, die mit dem Wort and in der GPL-3-Datei endet:

  1. grep "and$" GPL-3

Sie erhalten diese Ausgabe:

Output
that there is no warranty for this free software. For both users' and The precise terms and conditions for copying, distribution and License. Each licensee is addressed as "you". "Licensees" and receive it, in any medium, provided that you conspicuously and alternative is allowed only occasionally and noncommercially, and network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and provisionally, unless and until the copyright holder explicitly and receives a license from the original licensors, to run, modify and make, use, sell, offer for sale, import and otherwise run, modify and

Übereinstimmung mit jedem Zeichen

Das Punktzeichen (.) wird in regulären Ausdrücken verwendet, um anzuzeigen, dass an der angegebenen Stelle jedes einzelne Zeichen existieren kann.

Zum Beispiel, um alles in der GPL-3-Datei zu finden, was zwei Zeichen hat und dann die Zeichenfolge cept, verwenden Sie das folgende Muster:

  1. grep "..cept" GPL-3

Dieser Befehl liefert die folgende Ausgabe:

Output
use, which is precisely where it is most unacceptable. Therefore, we infringement under applicable copyright law, except executing it on a tells the user that there is no warranty for the work (except to the License by making exceptions from one or more of its conditions. form of a separately written license, or stated as exceptions; You may not propagate or modify a covered work except as expressly 9. Acceptance Not Required for Having Copies. ... ...

Diese Ausgabe enthält Instanzen von sowohl accept als auch except und Variationen der beiden Wörter. Das Muster würde auch z2cept entsprechen, wenn es ebenfalls gefunden würde.

Klammerausdrücke

Durch Platzierung einer Gruppe von Zeichen innerhalb von Klammern (\[ und \]) können Sie angeben, dass das Zeichen an dieser Position eines aus der Klammerngruppe sein kann.

Zum Beispiel, um die Zeilen zu finden, die too oder two enthalten, würden Sie diese Varianten prägnant durch folgendes Muster angeben:

  1. grep "t[wo]o" GPL-3

Die Ausgabe zeigt, dass beide Varianten in der Datei existieren:

Output
your programs, too. freedoms that you received. You must make sure that they, too, receive Developers that use the GNU GPL protect your rights with two steps: a computer network, with no transfer of a copy, is not conveying. System Libraries, or general-purpose tools or generally available free Corresponding Source from a network server at no charge. ... ...

Klammernotation bietet Ihnen einige interessante Optionen. Sie können das Muster so einstellen, dass es alles außer den Zeichen innerhalb einer Klammer abgleicht, indem Sie die Liste der Zeichen innerhalb der Klammern mit einem ^-Zeichen beginnen.

Dieses Beispiel ist wie das Muster .ode, passt jedoch nicht zum Muster code:

  1. grep "[^c]ode" GPL-3

Hier ist die Ausgabe, die Sie erhalten werden:

Output
1. Source Code. model, to give anyone who possesses the object code either (1) a the only significant mode of use of the product. notice like this when it starts in an interactive mode:

Bemerkenswert ist, dass in der zweiten zurückgegebenen Zeile tatsächlich das Wort code vorhanden ist. Dies ist kein Versagen des regulären Ausdrucks oder von grep. Diese Zeile wurde vielmehr zurückgegeben, weil früher in der Zeile das Muster mode, gefunden im Wort model, gefunden wurde. Die Zeile wurde zurückgegeben, weil es eine Instanz gab, die zum Muster passte.

Ein weiteres nützliches Feature von Klammern ist, dass Sie einen Bereich von Zeichen anstelle des einzelnen Eingebens jedes verfügbaren Zeichens angeben können.

Dies bedeutet, dass Sie, wenn Sie jede Zeile finden möchten, die mit einem Großbuchstaben beginnt, das folgende Muster verwenden können:

  1. grep "^[A-Z]" GPL-3

Hier ist die Ausgabe, die dieser Ausdruck zurückgibt:

Output
GNU General Public License for most of our software; it applies also to States should not allow patents to restrict development and use of License. Each licensee is addressed as "you". "Licensees" and Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an System Libraries, or general-purpose tools or generally available free Source. User Product is transferred to the recipient in perpetuity or for a ... ...

Aufgrund einiger Legacy-Sortierprobleme ist es oft genauer, POSIX-Zeichenklassen anstelle von Zeichenbereichen zu verwenden, wie Sie sie gerade verwendet haben.

Um jede POSIX-Zeichenklasse zu diskutieren, würde über den Rahmen dieses Leitfadens hinausgehen, aber ein Beispiel, das das gleiche Verfahren wie das vorherige Beispiel erreichen würde, verwendet die Zeichenklasse \[:upper:\] innerhalb eines Klammernselectors:

  1. grep "^[[:upper:]]" GPL-3

Die Ausgabe wird dieselbe sein wie zuvor.

Muster wiederholen null oder mehr Mal

Zuletzt gehört einer der am häufigsten verwendeten Meta-Zeichen der Asterisk oder *, was bedeutet „wiederhole das vorherige Zeichen oder den vorherigen Ausdruck null oder mehr Mal“.

Um jede Zeile in der Datei GPL-3 zu finden, die eine öffnende und schließende Klammer enthält, nur Buchstaben und einzelne Leerzeichen dazwischen, verwenden Sie den folgenden Ausdruck:

  1. grep "([A-Za-z ]*)" GPL-3

Sie erhalten die folgende Ausgabe:

Output
Copyright (C) 2007 Free Software Foundation, Inc. distribution (with or without modification), making available to the than the work as a whole, that (a) is included in the normal form of Component, and (b) serves only to enable use of the work with that (if any) on which the executable work runs, or a compiler used to (including a physical distribution medium), accompanied by the (including a physical distribution medium), accompanied by a place (gratis or for a charge), and offer equivalent access to the ... ...

Bisher haben Sie Punkte, Asterisken und andere Zeichen in Ihren Ausdrücken verwendet, aber manchmal müssen Sie speziell nach diesen Zeichen suchen.

Escapen von Meta-Zeichen

Es gibt Zeiten, in denen Sie nach einem buchstäblichen Punkt oder einer buchstäblichen öffnenden Klammer suchen müssen, insbesondere bei der Arbeit mit Quellcode oder Konfigurationsdateien. Da diese Zeichen in regulären Ausdrücken eine besondere Bedeutung haben, müssen Sie diese Zeichen „escapen“, um grep mitzuteilen, dass Sie in diesem Fall ihre besondere Bedeutung nicht verwenden möchten.

Sie escapen Zeichen, indem Sie das Backslash-Zeichen (\) vor dem Zeichen verwenden, das normalerweise eine besondere Bedeutung hätte.

Zum Beispiel, um eine Zeile zu finden, die mit einem Großbuchstaben beginnt und mit einem Punkt endet, verwenden Sie den folgenden Ausdruck, der den Endpunkt escapet, damit er einen buchstäblichen Punkt darstellt anstatt die übliche Bedeutung von „beliebiges Zeichen“:

  1. grep "^[A-Z].*\.$" GPL-3

Dies ist die Ausgabe, die Sie sehen werden:

Output
Source. License by making exceptions from one or more of its conditions. License would be to refrain entirely from conveying the Program. ALL NECESSARY SERVICING, REPAIR OR CORRECTION. SUCH DAMAGES. Also add information on how to contact you by electronic and paper mail.

Jetzt werfen wir einen Blick auf andere Optionen für reguläre Ausdrücke.

Erweiterte reguläre Ausdrücke

Der Befehl grep unterstützt eine umfangreichere reguläre Ausdruckssprache durch Verwendung des -E-Flags oder durch Aufrufen des Befehls egrep anstelle von grep.

Diese Optionen erweitern die Möglichkeiten der „erweiterten regulären Ausdrücke“. Erweiterte reguläre Ausdrücke umfassen alle grundlegenden Metazeichen sowie zusätzliche Metazeichen, um komplexere Übereinstimmungen auszudrücken.

Gruppierung

Eine der nützlichsten Fähigkeiten, die erweiterte reguläre Ausdrücke eröffnen, ist die Möglichkeit, Ausdrücke zusammenzufassen, um sie als eine Einheit zu manipulieren oder zu referenzieren.

Um Ausdrücke zusammenzufassen, umgeben Sie sie mit Klammern. Wenn Sie Klammern verwenden möchten, ohne erweiterte reguläre Ausdrücke zu verwenden, können Sie sie mit dem Backslash escapen, um diese Funktionalität zu aktivieren. Das bedeutet, dass die folgenden drei Ausdrücke funktional äquivalent sind:

  1. grep "\(grouping\)" file.txt
  2. grep -E "(grouping)" file.txt
  3. egrep "(grouping)" file.txt

Alternation

Ähnlich wie Bracket-Ausdrücke verschiedene mögliche Optionen für einzelne Zeichenübereinstimmungen angeben können, ermöglicht Alternation Ihnen, alternative Übereinstimmungen für Zeichenfolgen oder Ausdrucksgruppen anzugeben.

Um Alternation anzuzeigen, verwenden Sie das Pipe-Zeichen |. Diese werden oft innerhalb von Klammern gruppiert verwendet, um anzugeben, dass eine von zwei oder mehr Möglichkeiten als Übereinstimmung betrachtet werden soll.

Das Folgende findet entweder GPL oder General Public License im Text:

  1. grep -E "(GPL|General Public License)" GPL-3

Die Ausgabe sieht so aus:

Output
The GNU General Public License is a free, copyleft license for the GNU General Public License is intended to guarantee your freedom to GNU General Public License for most of our software; it applies also to price. Our General Public Licenses are designed to make sure that you Developers that use the GNU GPL protect your rights with two steps: For the developers' and authors' protection, the GPL clearly explains authors' sake, the GPL requires that modified versions be marked as have designed this version of the GPL to prohibit the practice for those ... ...

Alternation kann zwischen mehr als zwei Optionen wählen, indem zusätzliche Optionen innerhalb der Auswahlgruppe durch zusätzliche Pipe (|)-Zeichen getrennt werden.

Quantifizierer

Wie das Meta-Zeichen *, das das vorherige Zeichen oder Zeichenmenge null oder mehrmals übereinstimmte, gibt es auch andere Meta-Zeichen in erweiterten regulären Ausdrücken, die die Anzahl der Vorkommen angeben.

Um ein Zeichen null oder einmal zu entsprechen, können Sie das Zeichen ? verwenden. Dies macht das vorherige Zeichen oder Zeichenmenge optional, im Wesentlichen.

Das Folgende passt zu copyright und right, indem copy in eine optionale Gruppe gesetzt wird:

  1. grep -E "(copy)?right" GPL-3

Sie erhalten diese Ausgabe:

Output
Copyright (C) 2007 Free Software Foundation, Inc. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License "Copyright" also means copyright-like laws that apply to other kinds of ...

Das Zeichen + entspricht einem Ausdruck ein oder mehrmals. Dies ist fast wie das Meta-Zeichen *, aber mit dem Zeichen + muss der Ausdruck mindestens einmal übereinstimmen.Die folgende Zeichenfolge passt zur Zeichenfolge free plus ein oder mehrere Zeichen, die keine Leerzeichen sind:

Sie werden diese Ausgabe sehen:

  1. grep -E "free[^[:space:]]+" GPL-3
Output
The GNU General Public License is a free, copyleft license for to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to When we speak of free software, we are referring to freedom, not have the freedom to distribute copies of free software (and charge for you modify it: responsibilities to respect the freedom of others. freedomss that you received. You must make sure that they, too, receive protecting users' freedom to change the software. The systematic of the GPL, as needed to protect the freedom of users. patents cannot be used to render the program non-free.

Angabe der Übereinstimmungswiederholung

Um die Anzahl der Wiederholungen eines Treffers anzugeben, verwenden Sie die geschweiften Klammern ({ und }). Mit diesen Zeichen können Sie eine genaue Anzahl, einen Bereich oder eine obere bzw. untere Grenze für die Anzahl der Treffer eines Ausdrucks festlegen.

Verwenden Sie den folgenden Ausdruck, um alle Zeilen in der Datei GPL-3 zu finden, die dreifache Vokale enthalten:

  1. grep -E "[AEIOUaeiou]{3}" GPL-3

Jede zurückgegebene Zeile enthält ein Wort mit drei Vokalen:

Output
changed, so that their problems will not be attributed erroneously to authors of previous versions. receive it, in any medium, provided that you conspicuously and give under the previous paragraph, plus a right to possession of the covered work so as to satisfy simultaneously your obligations under this

Um Wörter mit einer Länge zwischen 16 und 20 Zeichen abzugleichen, verwenden Sie den folgenden Ausdruck:

  1. grep -E "[[:alpha:]]{16,20}" GPL-3

Hier ist die Ausgabe dieses Befehls:

Output
certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. c) Prohibiting misrepresentation of the origin of that material, or

Nur Zeilen, die Wörter dieser Länge enthalten, werden angezeigt.

Fazit

grep ist nützlich, um Muster innerhalb von Dateien oder der Dateisystemhierarchie zu finden, daher lohnt es sich, Zeit damit zu verbringen, sich mit den Optionen und der Syntax vertraut zu machen.

Reguläre Ausdrücke sind noch vielseitiger und können mit vielen gängigen Programmen verwendet werden. Zum Beispiel implementieren viele Texteditoren reguläre Ausdrücke zum Suchen und Ersetzen von Text.

Darüber hinaus verwenden die meisten modernen Programmiersprachen reguläre Ausdrücke, um Verfahren an bestimmten Datenstücken durchzuführen. Sobald Sie reguläre Ausdrücke verstehen, können Sie dieses Wissen auf viele gängige computerbezogene Aufgaben übertragen, angefangen bei der Durchführung fortgeschrittener Suchvorgänge in Ihrem Texteditor bis hin zur Validierung von Benutzereingaben.

Source:
https://www.digitalocean.com/community/tutorials/using-grep-regular-expressions-to-search-for-text-patterns-in-linux