unix - filtering file from the result of find command -
i want particular pattern in directory of files , want exclude patterns while result displayed.
i use following command
find . -type f -exec grep -il 'foo' {} \; | find . -not -name "*.jar" -not -name "*.gz" -not -name "*.log" 2>/dev/null
when result displayed, see following error message
find: grep terminated signal 13
can please guide me why error message there , if there better command use getting desired result (basically excluding jar files or log files or other type of files result set)?
i think you're trying use find
grep
in second half of pipeline; find
doesn't work that. should have in 1 command:
find . -type f -not -name "*.jar" -not -name "*.gz" -not -name "*.log" -exec grep -il 'foo' + 2>/dev/null
or
find . -type f -not -name "*.jar" -not -name "*.gz" -not -name "*.log" -exec grep -qi 'foo' \; -print 2>/dev/null
or let grep
traverse tree , filter names after (using grep
, not find
):
grep -irl foo . | grep -v -e '\.jar$' -e '\.gz$' -e '\.log$'
Comments
Post a Comment