显示不以#结尾的行
> grep ^[^#] rumenz.txt
显示#结尾的行
> grep ^# rumenz.txt
从单个文件查找指定字符串
> grep "rumenz" 1.txt
从多个文件查找指定字符串
> grep "rumenz" *.html
疏忽大小写, 并显示行号
> grep -in "rumenz" 1.txt
显示查找到的总行数
> grep -c "rumenz" 1.txt
查找目录下所有文件,并只输入含有该文本的文件名
> grep -l "rumenz" *
-l: 查问多文件的时候只输入蕴含匹配字符的文件名
递归查找目录下所有文件,并只输入含有该文本的文件门路
> grep -rl "rumenz" .
grep静默输入
不会输入任何信息,如果命令运行胜利返回0,失败则返回非0值。个别用于条件测试。
> grep -q "rumenz" 1.txt
除开某一个目录不匹配
> grep -R --exclude-dir="tmp" "rumenz"
tmp 中的文件不必查找
去掉文本中的空行
> cat 1.txt | grep -v "^\s*$"
过滤正文行
> cat 1.txt | grep -v "^#"
同时过滤空白行与正文行
> cat 1.txt | grep -v "^$" | grep -v "^#"
打印匹配行的后5行
> grep -A 5 'rumenz' 1.txt
打印匹配行的前5行
> grep -B 5 'rumenz' 1.txt
打印匹配行的前后5行
> grep -C 5 'rumenz' 1.txt
含糊匹配
> grep "abc" 1.txt //后果为abcd, abcde, abc等
准确匹配
> grep -w "abc" 1.txt
同时匹配多个字符串
> cat 1.txt | grep -e "ab" -e "ef" -o
- -e 指定字符串作为查找文件内容的要害字符
- -o 只输入文件中匹配到的局部, 不会打印多余的内容。
只在目录中所有的.php和.html文件中递归搜寻字符"rumenz"
> grep -r "rumenz" --include *.{html,php}
在搜寻后果中排除所有README文件
> grep -r "rumenz" --exclude "README" .
在搜寻后果中排除filelist文件列表里的文件
> cat filelistaaabbbrumenz> grep -r "rumenz" --exclude-from filelist .
原文链接:https://rumenz.com/rumenbiji/...
微信公众号:入门小站