Mit find und grep in Dateien suchen

Note: This post is old. Just use ack.

Da ich morgen heute — in 4,5 h — Klausur über Operating Systems schreibe, ist heute Schnipseltag. Um die Zeichenkette “foo” in allen Dateien im aktuellen Verzeichnis zu finden und eine Liste dieser Dateien auszugeben bietet sich folgende Kombination aus find und grep an:

find . -type f -exec grep -qi "foo" {} ; -print

Und um bestimmte Verzeichnisse auszuschließen (z.B. .git):

find . -path '*.git' -prune -o -type f -exec grep -qi "foo" {} ; -print