Grep: Unterschied zwischen den Versionen
Erscheinungsbild
K Textersetzung - „http://“ durch „https://“ |
|||
(73 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''grep''' - Suchen in Dateien und Datenstömen | |||
= | == Beschreibung == | ||
Mit grep lassen sich Zeichenketten in Dateien finden, die auf die angegebenen ''regular expressions'' passen | |||
* Wird keine Datei angegeben, so wird die Standardeingabe verwendet | |||
''grep'' steht für Global Regular Expression Print | |||
* [[Regular Expressions]] für eine Suche nutzen | |||
== Installation == | |||
''grep'' ist ein [[essenzielles Paket]] und [[sollte]] auf jedem [[Linux]] installiert sein | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
sudo apt install grep | |||
</syntaxhighlight> | |||
== Aufruf == | |||
<syntaxhighlight lang="bash" highlight="1-2" line> | |||
grep [Optionen] Muster [Datei...] | |||
grep [Optionen] [-e Muster | -f Datei] [Datei...] | |||
</syntaxhighlight> | |||
von | === Einsatz als Filter === | ||
Die Eingabe kann über die [https://eaumleitung.htm/ Standardeingabe] oder die Angabe von Dateien erfolgen | |||
cat /etc/services | grep MySQL | |||
= | === GNU Grep === | ||
GNU Grep unterstützt | |||
{| class="wikitable options gnu sortable" | |||
! UNIX !! GNU !! Ausdruck !! Befehl | |||
|- | |||
| -G || --basic-regexp || [[BRE]] || [[grep]] | |||
|- | |||
| -E || --extended-regexp || [[ERE]] || [[egrep]] | |||
|- | |||
| -F || --fixed-strings || [[fixed-string]] || [[fgrep]] | |||
|- | |||
| -P || --perl-regexp || PCRE || | |||
|- | |||
| -r || || || rgrep | |||
|} | |||
=== Optionen === | |||
; Wichtige Optionen | |||
{| class="wikitable sortable options gnu" | |||
|- | |||
! Unix !! GNU !! Parameter !! Beschreibung | |||
|- | |||
| -A || --after-context= || NUM || gibt zusätzlich NUM Zeilen nach der passenden Zeile aus | |||
|- | |||
| -a || --text || || Verarbeite eine binäre Datei, als wäre sie Text. Dies entspricht der Option --binary-files=text | |||
|- | |||
| -B || --before-context= || NUM || gibt zusätzlich NUM Zeilen vor der passenden Zeile aus | |||
= | |- | ||
| -b || --byte-offset || || gibt den Byte-Offset innerhalb der Datei vor jeder gefundenen Zeile an | |||
|- | |||
| -c || --binary-files= || TYP|| gibt an, wie mit [[#Binärdateien|Binärdateien]] verfahren soll | |||
|- | |||
| -C || --count || || unterdrückt die normale Ausgabe und gibt stattdessen für jede Eingabedatei an, wieviele Zeilen auf die regular expression passen | |||
< | |- | ||
| || --colour <br>--color || [=Wann] || Markiert Treffer farbig. Wann kann dabei "never", "always" oder "auto" sein | |||
|- | |||
| -E || --extended-regexp || ||Verwendet die extended Variante beim Interpretieren der übergebenen regular expression | |||
|- | |||
| -e || --regexp= || Muster || verwende Muster als regular expression. Nützlich um Ausdrücke zu schützen, die mit einem - beginnen | |||
|- | |||
| -F || --fixed-strings || || interpretiert das übergebene Muster als eine Liste von festen Zeichenketten, die durch Zeilenumbrüche voneinander getrennt sind | |||
|- | |||
| -f ||--file= || Datei|| beziehe die Muster aus Datei, eines je Zeile. Eine leere Datei enthält keine Muster und passt somit auf keinen String | |||
|- | |||
| -H || --with-filename || || gibt den Dateinamen vor jedem Treffer aus | |||
|- | |||
| -h || --no-filename || ||unterdrückt die Ausgabe des Dateinamens, wenn mehrere Dateien durchsucht werden | |||
|- | |||
| -I || --binary-files= || without-match|| schließt Binärdateien aus | |||
|- | |- | ||
| -i || --ignore-case || || unterscheide nicht zwischen Groß- und Kleinschreibung | |||
|- | |- | ||
| - | | -L || --files-without-match || || unterdrückt die normale Ausgabe und gibt stattdessen die Dateinamen von allen Dateien, die keine Treffer enthalten aus. Die Bearbeitung stoppt, sobald ein Treffer auftritt | ||
|- | |- | ||
| - | | -l || --files-with-match || || unterdrückt die normale Ausgabe und gibt stattdessen die Dateinamen von allen Dateien, die Treffer enthalten aus. Die Bearbeitung stoppt, sobald ein Treffer auftritt | ||
|- | |- | ||
| -n ||--line-number || || gibt die Zeilennummer vor jedem Treffer aus | |||
| -n||--line-number | |||
|- | |- | ||
|- | | -o || --only-matching || || gibt nur die passende Zeichenkette aus | ||
|- | |- | ||
|- | | -P || --perl-regexp || || verwendet Perl regular expressions | ||
|- | |- | ||
| - | | -q || --quiet <br>--silent || || schreibt nichts auf die Standardausgabe und stoppt beim ersten Treffer | ||
| | |||
| | |||
|- | |- | ||
| | | -R <br>-r | || --recursive|| | ||
|liest alle Dateien unter jedem Verzeichnis rekursiv | |||
|- | |- | ||
| | | -v || --invert-match || || Invertiert die Suche und liefert alle Zeilen die nicht auf das gesuchte Muster passen | ||
|- | |- | ||
| | | -w || --word-regexp || | | ||
|wählt nur solche Zeilen aus, deren Treffer aus vollständigen Wörtern bestehen | |||
|} | |} | ||
=== Parameter === | |||
== | |||
== | |||
=== Umgebungsvariablen === | |||
=== Exit-Status === | |||
== Konfiguration == | |||
=== Binärdateien === | |||
Wie soll grep mit binären Dateien verfahren? | |||
* Default für Typ ist binary, in diesem Fall gibt grep nur eine kurze einzeilige Mitteilung aus, ob die Datei das Muster enthält oder nicht. | |||
* without-match nimmt an, dass eine binäre Datei keine passenden Zeichenketten enthält. | |||
* Bei text verarbeitet grep die Datei als wäre sie eine Textdatei. | |||
; Vorsicht | |||
<blockquote> | |||
Die Ausgabe von binären Daten kann zu unerwünschten Resultaten führen, wenn die Ausgabe auf einem Terminal erfolgt, und dieses einige der Zeichenketten als Befehle interpretiert! | |||
</blockquote> | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}/}} | |||
=== | === Dokumentation === | ||
; Man-Page | |||
; Info-Pages | |||
=== | === Links === | ||
==== Projekt ==== | |||
==== Weblinks ==== | |||
# https://wiki.ubuntuusers.de/grep/ | |||
[[Kategorie:Linux/Suchen]] | |||
[[Kategorie:Linux/Befehl]] | |||
[[Kategorie:Regular Expression]] | |||
{{DEFAULTSORT:grep}} | |||
{{DISPLAYTITLE:grep}} | |||
</noinclude> |
Aktuelle Version vom 7. April 2025, 14:36 Uhr
grep - Suchen in Dateien und Datenstömen
Beschreibung
Mit grep lassen sich Zeichenketten in Dateien finden, die auf die angegebenen regular expressions passen
- Wird keine Datei angegeben, so wird die Standardeingabe verwendet
grep steht für Global Regular Expression Print
- Regular Expressions für eine Suche nutzen
Installation
grep ist ein essenzielles Paket und sollte auf jedem Linux installiert sein
sudo apt install grep
Aufruf
grep [Optionen] Muster [Datei...]
grep [Optionen] [-e Muster | -f Datei] [Datei...]
Einsatz als Filter
Die Eingabe kann über die Standardeingabe oder die Angabe von Dateien erfolgen
cat /etc/services | grep MySQL
GNU Grep
GNU Grep unterstützt
UNIX | GNU | Ausdruck | Befehl |
---|---|---|---|
-G | --basic-regexp | BRE | grep |
-E | --extended-regexp | ERE | egrep |
-F | --fixed-strings | fixed-string | fgrep |
-P | --perl-regexp | PCRE | |
-r | rgrep |
Optionen
- Wichtige Optionen
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
-A | --after-context= | NUM | gibt zusätzlich NUM Zeilen nach der passenden Zeile aus |
-a | --text | Verarbeite eine binäre Datei, als wäre sie Text. Dies entspricht der Option --binary-files=text | |
-B | --before-context= | NUM | gibt zusätzlich NUM Zeilen vor der passenden Zeile aus |
-b | --byte-offset | gibt den Byte-Offset innerhalb der Datei vor jeder gefundenen Zeile an | |
-c | --binary-files= | TYP | gibt an, wie mit Binärdateien verfahren soll |
-C | --count | unterdrückt die normale Ausgabe und gibt stattdessen für jede Eingabedatei an, wieviele Zeilen auf die regular expression passen | |
--colour --color |
[=Wann] | Markiert Treffer farbig. Wann kann dabei "never", "always" oder "auto" sein | |
-E | --extended-regexp | Verwendet die extended Variante beim Interpretieren der übergebenen regular expression | |
-e | --regexp= | Muster | verwende Muster als regular expression. Nützlich um Ausdrücke zu schützen, die mit einem - beginnen |
-F | --fixed-strings | interpretiert das übergebene Muster als eine Liste von festen Zeichenketten, die durch Zeilenumbrüche voneinander getrennt sind | |
-f | --file= | Datei | beziehe die Muster aus Datei, eines je Zeile. Eine leere Datei enthält keine Muster und passt somit auf keinen String |
-H | --with-filename | gibt den Dateinamen vor jedem Treffer aus | |
-h | --no-filename | unterdrückt die Ausgabe des Dateinamens, wenn mehrere Dateien durchsucht werden | |
-I | --binary-files= | without-match | schließt Binärdateien aus |
-i | --ignore-case | unterscheide nicht zwischen Groß- und Kleinschreibung | |
-L | --files-without-match | unterdrückt die normale Ausgabe und gibt stattdessen die Dateinamen von allen Dateien, die keine Treffer enthalten aus. Die Bearbeitung stoppt, sobald ein Treffer auftritt | |
-l | --files-with-match | unterdrückt die normale Ausgabe und gibt stattdessen die Dateinamen von allen Dateien, die Treffer enthalten aus. Die Bearbeitung stoppt, sobald ein Treffer auftritt | |
-n | --line-number | gibt die Zeilennummer vor jedem Treffer aus | |
-o | --only-matching | gibt nur die passende Zeichenkette aus | |
-P | --perl-regexp | verwendet Perl regular expressions | |
-q | --quiet --silent |
schreibt nichts auf die Standardausgabe und stoppt beim ersten Treffer | |
--recursive | liest alle Dateien unter jedem Verzeichnis rekursiv | ||
-v | --invert-match | Invertiert die Suche und liefert alle Zeilen die nicht auf das gesuchte Muster passen | |
-w | --word-regexp | wählt nur solche Zeilen aus, deren Treffer aus vollständigen Wörtern bestehen |
Parameter
Umgebungsvariablen
Exit-Status
Konfiguration
Binärdateien
Wie soll grep mit binären Dateien verfahren?
- Default für Typ ist binary, in diesem Fall gibt grep nur eine kurze einzeilige Mitteilung aus, ob die Datei das Muster enthält oder nicht.
- without-match nimmt an, dass eine binäre Datei keine passenden Zeichenketten enthält.
- Bei text verarbeitet grep die Datei als wäre sie eine Textdatei.
- Vorsicht
Die Ausgabe von binären Daten kann zu unerwünschten Resultaten führen, wenn die Ausgabe auf einem Terminal erfolgt, und dieses einige der Zeichenketten als Befehle interpretiert!
Anhang
Siehe auch
Dokumentation
- Man-Page
- Info-Pages
Links
Projekt
Weblinks