grep搜索命名的输入文件(如果没有命名文件,则搜索标准输入)以查找包含与给定PATTERN匹配的行。默认情况下,grep打印匹配的整行。
example1: 搜索一个文件,最普通模式
[root@aliyun-hk1 linux-shell-test]# grep hello grep1.sh
hello
example2:递归搜索一个目录下的所有文件
[root@aliyun-hk1 linux-shell-test]# grep python2 /etc/
grep: /etc/: Is a directory
[root@aliyun-hk1 linux-shell-test]# grep -r python2 /etc/
/etc/rpm/macros.python: CFLAGS="%{optflags}" %{__python} %{py_setup} %{?py_setup_args} build --executable="%{__python2} %{py_shbang_opts}" %{?*}
/etc/rpm/macros.python: if (string.starts(package, "python2-")) then
/etc/rpm/macros.python: print("Provides: python2-"
example3:从一个标准输入搜索关键字,从管道搜索
[root@aliyun-hk1 linux-shell-test]# ps -ef|grep python
root 803 1 0 Feb28 ? 00:00:34 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 25027 24873 0 21:34 pts/0 00:00:00 grep --color=auto python
[root@aliyun-hk1 linux-shell-test]#
example4: 搜索时忽略大小写,使用-i
[root@aliyun-hk1 linux-shell-test]# grep Hello grep1.sh
[root@aliyun-hk1 linux-shell-test]# grep -i Hello grep1.sh
hello
[root@aliyun-hk1 linux-shell-test]# ps -ef|grep -i Python
root 803 1 0 Feb28 ? 00:00:34 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 25054 24873 0 21:40 pts/0 00:00:00 grep --color=auto -i Python
[root@aliyun-hk1 linux-shell-test]#
example5: 搜索时排除某些关键字,使用-v
[root@aliyun-hk1 linux-shell-test]# ps -ef|grep -i Python
root 803 1 0 Feb28 ? 00:00:34 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 25063 24873 0 21:42 pts/0 00:00:00 grep --color=auto -i Python
[root@aliyun-hk1 linux-shell-test]# ps -ef|grep -i Python|grep -v grep
root 803 1 0 Feb28 ? 00:00:34 /usr/bin/python -Es /usr/sbin/tuned -l -P
[root@aliyun-hk1 linux-shell-test]#
example6: 搜索时使用正则表达式,-e
grep –e "正则表达式" 文件名
example7: 搜索结果只返回匹配的文件名,-l
[root@aliyun-hk1 linux-shell-test]# grep -il Hello grep1.sh
grep1.sh
example8: 搜索结果只返回不匹配的文件名,-L
[root@aliyun-hk1 linux-shell-test]# grep -irL python grep1.sh
grep1.sh
[root@aliyun-hk1 linux-shell-test]# grep -irL Hello grep1.sh
[root@aliyun-hk1 linux-shell-test]#
example9: 结合find命令搜索log或者config文件
[root@aliyun-hk1 linux-shell-test]# find / -name *.log|xargs grep -il error
/var/log/yum.log
/var/log/cloud-init.log
/var/log/nginx/access.log
/var/log/nginx/error.log
/usr/local/share/aliyun-assist/1.0.1.259/log/aliyun_assist_update.log
/usr/local/share/aliyun-assist/1.0.1.259/log/aliyun_assist_main.log
/usr/share/doc/libjpeg-turbo-1.2.90/change.log
example10: 搜索gz或tar.gz文件,使用zgrep
[root@aliyun-hk1 linux-shell-test]# zgrep -ai hello grep1.tar.gz
echo1.sh
ustar root root
hello
hello
grep1.sh
ustar root root
hello world
hEllo word
HEllo world
hellO sir
[root@aliyun-hk1 linux-shell-test]# zgrep -i hello grep1.sh.gz
hello world
hEllo word
HEllo world
hellO sir
[root@aliyun-hk1 linux-shell-test]#
example11: 更多参数请查看文档,man grep