2014-06-10 2 views
8

Ich möchte sowohl "*log*" als auch ./tags von Grep ausschließen.Ausschließen mehrerer Muster mit grep

Was ich tun ist:

grep -rI "PatternToSearch" ./path --exclude="*log*" 

oder dies:

grep -rI "PatternToSearch" ./path --exclude="tags" 

ist es möglich, in einem grep beide ausschließen Muster zu verschmelzen?

+0

Sie es auch 'find' mit auslegen könnte, mit so etwas wie' zu ​​finden. -name ./tags -prune -o -nicht -name "* log *" -exec grep -HI Muster {} + ' –

Antwort

3

haben eine andere --exclude <pattern>:

grep -rI "PatternToSearch" --exclude="*log*" --exclude="tags" . 
+0

danke @anubhava es hat funktioniert, aber neugierig zu wissen, ob es andere Wege gibt wo ich schreibe' - exclude 'only once – DragonX

+1

Leider' --exclude' erlaubt Regex oder erweitertes Muster nicht, mehr als 1 Muster in einer einzelnen Option anzugeben. – anubhava

+2

Sie können '--exclude = {* log *, tags}' verwenden, um mehr als 1 Muster mit --exclude zu ignorieren. – Nancy