praktisches grep

Zeilen vor und nach dem Treffer ausgeben mit -B (–before-context) und -A (–after-context). Muss nicht weiter erklärt werden:

 grep -A1 -B2 "foo" /path/to/file

Zeichen vor und nach dem Treffer ausgeben geht mit -o (–only-matching) und -E (–extended-regexp). Der Parameter -E sorgt dafür, dass wonach gesucht wird als regulärer Ausdruck ausgewertet wird. Die Option -o zeigt nur das an was zutrifft, also nicht wie sonst üblich die komplette Zeile:

 grep -o -E ".{0,1}foo.{0,2}" /path/to/file

Dateinamen nicht angeben bei Treffern geht mit -h (–no-filename). Das ist gerade in der Kombination mit -E und -o praktisch wenn man das Ergebnis weiter verarbeiten möchte und nicht die Dateinamen mit einem dritten Programm (cut, awk…) wegparsen möchte:

 grep -Eho '' /path/to/files*

Steht alles auch so in der manpage 8-)

Update 2015-12-04:

grep -h -oP "ServerName \K.*" /etc/apache2/sites-enabled/*

(via)

prego

/me... prego!

Ein Gedanke zu „praktisches grep“

  1. grep -C (–context) ist auch ganz gut. Damit kann man die Zeilen davor und danach mit einem Parameter angeben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.