如何grep
在给定文件夹中递归文件(几种文件类型除外)?
例如,我正在工作区文件夹中查找字符串,但它最终会在 sql 文件中搜索并生成序列化字符串。
所以在这种情况下,我想要grep
工作区文件夹(sql 文件除外)。
如果可能的话,我最好找一个单线。
答案1
如果您有 GNU,grep
您可以使用该--exclude=GLOB
选项,例如
grep -r --exclude='*.sql' pattern dir/
答案2
这将为您执行此操作并排除 .sql 和 .txt 文件:
find /some/dir -type f ! -name '*\.sql' ! -name '*.txt' -print0 | xargs -0 grep 'foobar'
然而听起来像确认对于您想要做的事情来说,这将是一个更好的工具:
ack -a --nosql 'foobar' /some/dir