Tutorials  /  Linux Basics

Grep-Befehl in Linux/UNIX

Ccentron Redaktion · November 2024 ·10 Min. Lesezeit ·Linux Basics, Tutorial

Was ist Grep

Grep, kurz für „global regular expression print“, ist ein Befehl zum Suchen und Abgleichen von Textmustern in Dateien, die in den regulären Ausdrücken enthalten sind. Darüber hinaus ist der Befehl in jeder Linux-Distribution vorinstalliert. In diesem Leitfaden werden wir die gängigsten Verwendungen des Grep-Befehls sowie beliebte Anwendungsfälle betrachten.

VM

Zum Ausprobieren: Cloud-Server ab 3,12 €/Monat

ccloud³ VMs aus deutschen Rechenzentren – in Sekunden gestartet, stundengenau abgerechnet, mit 200 € Startguthaben für neue Konten. Server starten →

Grep-Befehl in Linux

Der Grep-Befehl kann verwendet werden, um einen regulären Ausdruck oder eine Zeichenkette in einer Textdatei zu finden oder zu durchsuchen. Um dies zu demonstrieren, erstellen wir eine Textdatei welcome.txt und fügen wie gezeigt etwas Inhalt hinzu.

Code
Welcome to Linux!
Linux is a free and opensource Operating system that is mostly used by
developers and in production servers for hosting crucial components such as web
and database servers. Linux has also made a name for itself in PCs.
Beginners looking to experiment with Linux can get started with friendlier linux
distributions such as Ubuntu, Mint, Fedora and Elementary OS.

Großartig! Jetzt sind wir bereit, ein paar grep-Befehle auszuführen und die Ausgabe so zu manipulieren, dass die gewünschten Ergebnisse erzielt werden. Um nach einer Zeichenkette in einer Datei zu suchen, führen Sie den folgenden Befehl aus:

Code
grep "string" file name

ODER

$ filename grep "string"

```bash

**Example**:

```bash

$ grep "Linux" welcome.txt

Ausgabe:Grep text example

Verwendung des Grep-Kommandos

Wie Sie sehen können, hat grep nicht nur die Zeichenkette „Linux“ durchsucht und abgeglichen, sondern auch die Zeilen ausgegeben, in denen die Zeichenkette vorkommt. Wenn sich die Datei in einem anderen Dateipfad befindet, achten Sie darauf, den Dateipfad wie unten gezeigt anzugeben:

Console
$ grep "string" /path/to/file
```bash

## Farbige Darstellung der Grep-Ergebnisse mit der Option --color

Wenn Sie auf einem System arbeiten, das die Suchzeichenfolge oder das Suchmuster nicht farblich vom Rest des Textes unterscheidet, verwenden Sie die Option "--color", um Ihre Ergebnisse hervorzuheben. Beispiel:

```bash
$ grep --color "free and opensource" welcome.txt

Ausgabe:Grep color

Suche nach einer Zeichenfolge rekursiv in allen Verzeichnissen

Wenn Sie nach einer Zeichenfolge in Ihrem aktuellen Verzeichnis und allen Unterverzeichnissen suchen möchten, verwenden Sie das -r-Flag wie folgt:

Code
grep -r "string-name" *

ZUm Beispiel:

Code
grep -r "linux" *

Ausgabe:Grep recursive

Ignorieren der Groß- und Kleinschreibung

Im obigen Beispiel haben uns unsere Suchergebnisse das geliefert, was wir wollten, da der String „Linux“ in Großbuchstaben angegeben wurde und auch in der Datei in Großbuchstaben existiert. Versuchen wir nun, den String in Kleinbuchstaben zu suchen.

Code
grep "linux" file name

Nichts von der Ausgabe, richtig? Dies liegt daran, dass grepping den String „linux“ nicht finden und abgleichen konnte, da der erste Buchstabe klein geschrieben ist. Um die Groß- und Kleinschreibung zu ignorieren, verwenden Sie das -i-Flag und führen Sie den folgenden Befehl aus:

Code
grep -i "linux" welcome.txt

Ausgabe:Grep ignore case sensitivity

Genial, nicht wahr? Das -i wird normalerweise verwendet, um Zeichenfolgen unabhängig von ihrer Groß- und Kleinschreibung anzuzeigen.

Zählen Sie die Zeilen, in denen Zeichenfolgen mit der Option -c übereinstimmen

Um die Gesamtzahl der Zeilen zu zählen, in denen das Zeichenfolgenmuster erscheint oder vorkommt, führen Sie den folgenden Befehl aus:

Code
grep -c "Linux" welcome.txt

Ausgabe:Grep count number of lines

Verwendung von Grep, um die Ausgabe umzukehren

Um die Grep-Ausgabe umzukehren, verwenden Sie das -v-Flag. Die -v-Option weist grep an, alle Zeilen auszugeben, die den Ausdruck nicht enthalten oder mit ihm übereinstimmen. Die -v-Option weist grep an, seine Ausgabe umzukehren, was bedeutet, dass anstelle der übereinstimmenden Zeilen das Gegenteil ausgegeben wird: alle Zeilen, die nicht mit dem Ausdruck übereinstimmen. Kehren wir zu unserer Datei zurück und zeigen wir die Zeilennummern an, wie unten gezeigt. Drücken Sie ESC im Vim-Editor, geben Sie einen Doppelpunkt ein, gefolgt von:

Code
set nu

Als nächstes Enter drücken.

OutputLine number in vim

Um die Zeilen anzuzeigen, die nicht die Zeichenfolge „Linux“ enthalten, führen Sie "run" aus:

Code
grep -v "Linux" welcome.txt

Ausgabe:Grep invert output

Wie Sie sehen, hat grep die Zeilen angezeigt, die das Suchmuster nicht enthalten.

Nummerieren Sie die Zeilen, die das Suchmuster mit der Option -n enthalten

Um die Zeilen zu nummerieren, in denen das Zeichenfolgenmuster übereinstimmt, verwenden Sie die -n-Option, wie unten gezeigt:

Code
grep -n "Linux" welcome.txt

Ausgabe:Grep line number where string appears

Suche nach genau übereinstimmendem Wort mit der Option -w

Das Übergeben des -w-Flags durchsucht die Zeilen, die das genau übereinstimmende Wort enthalten, wie unten gezeigt:

Code
grep -w "opensource" welcome.txt

Ausgabe:Grep search exact matching pattern

Wenn Sie jedoch das versuchen:

Code
grep -w "open" welcome.txt

Keine Ergebnisse werden zurückgegeben, da wir nicht nach einem Muster, sondern nach einem exakten Wort suchen!

Verwendung von Pipes mit Grep

Der grep-Befehl kann zusammen mit Pipes verwendet werden, um eindeutige Ausgaben zu erhalten. Wenn Sie beispielsweise wissen möchten, ob ein bestimmtes Paket auf einem Ubuntu-System installiert ist, führen Sie aus:

Code
dpkg -L | grep "package-name"

Zum Beispiel, um herauszufinden, ob OpenSSH auf Ihrem System installiert ist, leiten Sie den Befehl dpkg -l an grep weiter, wie unten gezeigt:

Code
dpkg -L | grep -i "openssh"

Ausgabe:Grep package name

Anzeigen der Anzahl der Zeilen vor oder nach einem Suchmuster mit Pipes

Sie können -A oder -B verwenden, um die Anzahl der Zeilen anzuzeigen, die entweder der Suchzeichenfolge vorausgehen oder nach ihr kommen. Das -A-Flag gibt die Zeilen an, die nach der Suchzeichenfolge erscheinen, und -B gibt die Ausgabe aus, die vor der Suchzeichenfolge erscheint. Zum Beispiel:

Code
ifconfig | grep -A 4 ens3

Dieser Befehl zeigt die Zeile, die die Zeichenfolge enthält, plus 4 Zeilen Text nach der Zeichenfolge „ens“ im Befehl ifconfig an.

AUsgabe:Grep lines after search string

Umgekehrt zeigt in dem unten stehenden Beispiel die Verwendung des -B-Flags die Zeile, die die Suchzeichenfolge enthält, plus 3 Zeilen Text vor der Zeichenfolge „ether“ im Befehl ifconfig an. Ausgabe:

Code
ifconfig | grep -B 4 ether
Grep lines before search string

Verwendung von grep mit REGEX - Regulären Ausdrücken

Der Begriff REGEX ist ein Akronym für REGuläre AUSdrücke. Ein REGEX ist eine Abfolge von Zeichen, die verwendet wird, um ein Muster zu finden. Nachfolgend einige Beispiele:

Code
^      Matches characters at the beginning of a line
$      Matches characters at the end of a line
"."    Matches any character
[a-z]  Matches any characters between A and Z
[^ ..] Matches anything apart from what is contained in the brackets

Beispiel

Um Zeilen auszugeben, die mit einem bestimmten Zeichen beginnen, lautet die Syntax:

Code
grep ^character file_name

Zum Beispiel, um die Zeilen anzuzeigen, die mit dem Buchstaben „d“ in unserer Datei welcome.txt beginnen, würden wir folgenden Befehl ausführen:

Code
grep ^d welcome.txt

Ausgabe:Regex beginning of line

Um Zeilen anzuzeigen, die mit dem Buchstaben „x“ enden, führen Sie folgendes aus:

Code
grep x$ welcome.txt

Ausgabe:Regex end of line

Hilfe zu weiteren Grep-Optionen erhalten

Wenn Sie mehr über die Verwendung des Grep-Befehls erfahren möchten, führen Sie den folgenden Befehl aus, um eine Vorschau auf weitere Flags oder Optionen zu erhalten, die Sie zusammen mit dem Befehl verwenden können:

Code
grep --help

Beispielausgabe:Grep help

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren