grep搜索命名的输入文件(若是没有命名文件,则搜索标准输入)以查找包含与给定PATTERN匹配的行。默认状况下,grep打印匹配的整行。
<!--more-->python
example1: 搜索一个文件,最普通模式linux
[root@aliyun-hk1 linux-shell-test]# grep hello grep1.sh hello
example2:递归搜索一个目录下的全部文件nginx
[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: 搜索时忽略大小写,使用-ishell
[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: 搜索时排除某些关键字,使用-vide
[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: 搜索时使用正则表达式,-eui
grep –e "正则表达式" 文件名
example7: 搜索结果只返回匹配的文件名,-lcode
[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