Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

grep multiple exclude extension

Writer Matthew Martinez

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