grep multiple exclude extension
15,529
Solution 1
You should escape the asterisk, not the curly brace. Your command should look like this:
grep -r --exclude=\*.{html,htm,js} "li" *
Solution 2
man grep *scroll scroll scroll*
--exclude=GLOB Skip files whose base name matches GLOB (using wildcard matching). A file-name glob can use *, ?, and [...] as wildcards, and \ to quote a wildcard or backslash character literally.
Look up "shell globbing" for more info
Example:
$ grep -r --exclude=\*.{png,jpg} a . ./moo.txt:a ./moo.htm:a ./hai:a $ ls hai hai.png moo.htm moo.txt
Comments
-
Vyacheslav Loginov almost 2 years
I find single exclude extension like
grep --exclude "*.js" "a" *
How do I write multiple exclude masks?
I have tried the code below, but it doesn't work:
grep -r --exclude=*.\{html,htm,js} "li" * grep -R -E '(\.js|rb)' "create" *