Bei Grep für zu durchsuchende Dateien Ausnahmen definieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Homer
Beiträge: 126
Registriert: 25.10.2002 16:30:28
Wohnort: Karlsruhe

Bei Grep für zu durchsuchende Dateien Ausnahmen definieren

Beitrag von Homer » 10.10.2005 10:17:04

Hallo zusammen,

eine ganz einfache Frage: Ich durchsuche rekursiv ein Verzeichnis nach einem bestimmten Begriff, möchte aber nicht das z.B. Backups der Dateien (mit der Endung ~) durchsucht werden. Wie mach ich den sowas? Oder wo ist das erklärt?

Danke schon mal im Voraus!

Ciao,

Timo
"Sie können auch Ihr Geld aus dem Windows rauswerfen"

zaarkov
Beiträge: 123
Registriert: 14.08.2003 11:08:51

Beitrag von zaarkov » 10.10.2005 13:25:12

du koenntest auf eine kombinatination von find, xargs und grep
umsteigen.

find sammelt dir einfach rekursiv die dateinamen (auch nach bestimmten schemen) zusammen, die du dann mittels xargs greppen kannst.

beispiel: (ohne ~-backups)

Code: Alles auswählen

find |grep -v "~$" |xargs -i grep "text" {}
({} wird zum dateinamen mit pfad substituiert)

zaarkov

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 11.10.2005 16:11:08

Eventuell helfen dir auch die beiden Schalter --include=PATTERN und --exclude=PATTERN weiter. Damit kannst du gezielt Dateien ein oder ausschliessen, wenn du rekursiv durch Verzeichnisse laeufst.

Benutzeravatar
Homer
Beiträge: 126
Registriert: 25.10.2002 16:30:28
Wohnort: Karlsruhe

Beitrag von Homer » 11.10.2005 17:00:19

Hallo zusammen!

Danke für Eure Antworten! Den Tip von Nepos habe ich bereits ausprobiert. Funktioniert gut!
Kann ich bei so einem Pattern auch mehrere verschiedene auf einmal angeben, um z.B. alte Dateien (*~) und Objektdateien (*.o) auf einmal auszuschließen?

Ciao,

Homer
"Sie können auch Ihr Geld aus dem Windows rauswerfen"

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 12.10.2005 09:21:21

Habs selber noch nie genutzt, aber ich wuerd halt die Schalter mehrmals anwenden, also

Code: Alles auswählen

grep --exclude=PATTERN1 --exclude=PATTERN2 ... 

Benutzeravatar
Homer
Beiträge: 126
Registriert: 25.10.2002 16:30:28
Wohnort: Karlsruhe

Beitrag von Homer » 14.10.2005 11:32:05

Danke! Scheint zu funktionieren!
"Sie können auch Ihr Geld aus dem Windows rauswerfen"

Antworten