grep搜索当前目录和排除目录、文件、关键字


1.搜索当前目录   1.1 搜索当前目录下所有文件,-P文件Perl正则模式,是最强正则模式
grep -Prn "\d{3}" ./ 

grep -Prn "\d{3}" *

grep -rn "\d{3}" *   #不支持强正则
1.2 搜索指定目录下所有文件
grep -rnP "\d{3}" ./src

2.排除目录

grep -rni 'http' --exclude-dir=.git ./
grep -rni 'http' --exclude-dir={.git,res,bin} ./
3.排除文件
grep -rni 'http' --exclude=*.java
grep -rni 'http' --exclude=*.{java,js,css}
grep -rni 'http' --exclude={test.log,grep,*.log}
4.排除关键字
grep -i 'use' test.log | grep -v "option"
# 排除多个关键字
grep -i 'use' test.log | grep -v "option" | grep -v "find"
5.排除二进制
grep -I "keyword" .
grep -RI "grep" .
  6.打印排除目录
ls | grep -Fv weiba               #打印不含weiba的目录
ls | grep -Pv '^(weiba|huati)$'   #打印不以weiba或huati开头的目录