grep multiple exclude extension

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" * 

2 Answers

You should escape the asterisk, not the curly brace. Your command should look like this:

grep -r --exclude=\*.{html,htm,js} "li" * 

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 

Similar question

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like