Grep: Unterschied zwischen den Versionen

Aus Foxwiki
RafauSzlazek (Diskussion | Beiträge)
RafauSzlazek (Diskussion | Beiträge)
Zeile 16: Zeile 16:
=<big>Einsatzgebiete</big>=
=<big>Einsatzgebiete</big>=


grep wird in erster Linie dann eingesetzt, wenn Dateien durchsucht werden müssen, zum Beispiel die Quelldateien eines Computerprogramms oder Logdateien. In Zusammenarbeit mit find kann ein ganzer Dateibaum gelesen werden.
grep wird in erster Linie dann eingesetzt, wenn Dateien durchsucht werden müssen, zum Beispiel die Quelldateien eines Computerprogramms oder Logdateien. In Zusammenarbeit mit find kann ein ganzer Dateibaum gelesen werden.<br>
<br>


<code>$ find /home/benutzername -exec grep -H "Passwort" {} \;</code>
<br>


Dieses Kommando durchsucht alle Dateien des Quellverzeichnisses des Benutzers benutzername nach der Zeichenkette Passwort und zeigt die gefundenen Zeilen zusammen mit dem Dateinamen an, wobei die Anzeige des Dateinamens durch die Option -H ausgelöst wird.


Manche grep-Versionen ermöglichen eine kürzere Formulierung mit Hilfe der Option -r:
<code>$ find /home/benutzername -exec grep -H "Passwort" {} \;</code><br>
<br>


<code>$ grep -r "Passwort" /home/benutzername<code>
<br>


Dieses Kommando durchsucht alle Dateien des Quellverzeichnisses des Benutzers benutzername nach der Zeichenkette Passwort und zeigt die gefundenen Zeilen zusammen mit dem Dateinamen an, wobei die Anzeige des Dateinamens durch die Option -H ausgelöst wird.<br>


Ein zweites Einsatzgebiet ist die Verwendung als Zeilen-Filter innerhalb einer Kette von Befehlen, z. B.:


<code>$ tail -1000 /var/log/mail | grep "Mailadresse</code>
Manche grep-Versionen ermöglichen eine kürzere Formulierung mit Hilfe der Option -r:<br>
<br>
 
<code>$ grep -r "Passwort" /home/benutzername<code><br>
 
 
Ein zweites Einsatzgebiet ist die Verwendung als Zeilen-Filter innerhalb einer Kette von Befehlen, z. B.:<br>
 
 
<code>$ tail -1000 /var/log/mail | grep "Mailadresse</code><br>


=<big>egrep oder grep -E?</big>=
=<big>egrep oder grep -E?</big>=

Version vom 11. März 2020, 14:06 Uhr

Linuxbefehl: grep


Der Befehl Grep ist ein Unix Befehl, mit dem du Zeilen aus Code- und Log-Dateien oder Commandoutputs nach Strings durchsuchen kannst.

Bedeutung


grep steht für Global 'Regular Expression Print. Das heisst, dass du auch Regular Expressions für die Suche nutzen kannst. Wenn du noch nicht weisst, was Regular Expressions sind, solltest du dir ein Regex-Tutorial anschauen. Empfehlenswert ist zum Beispiel das interaktive von regexone.com. Ohne Regexes ist grep aber natürlich auch nutzbar.

Beispiel


grep "hallo" xyz.txt

Einsatzgebiete

grep wird in erster Linie dann eingesetzt, wenn Dateien durchsucht werden müssen, zum Beispiel die Quelldateien eines Computerprogramms oder Logdateien. In Zusammenarbeit mit find kann ein ganzer Dateibaum gelesen werden.


$ find /home/benutzername -exec grep -H "Passwort" {} \;


Dieses Kommando durchsucht alle Dateien des Quellverzeichnisses des Benutzers benutzername nach der Zeichenkette Passwort und zeigt die gefundenen Zeilen zusammen mit dem Dateinamen an, wobei die Anzeige des Dateinamens durch die Option -H ausgelöst wird.


Manche grep-Versionen ermöglichen eine kürzere Formulierung mit Hilfe der Option -r:

$ grep -r "Passwort" /home/benutzername


Ein zweites Einsatzgebiet ist die Verwendung als Zeilen-Filter innerhalb einer Kette von Befehlen, z. B.:


$ tail -1000 /var/log/mail | grep "Mailadresse

egrep oder grep -E?


egrep ist wie grep, nur mit dem Unterschied, dass du auch +, ?, | und () als Regular Expression nutzen kannst. egrep ist nichts anderes als ein grep -E. Auf vielen Maschinen ist egrep sogar nur ein Link auf grep. Ausserdem ist egrep deprecated, weswegen du lieber zum
grep -E
greifen solltest.