对于很多人来说,grep命令都很熟悉,我接触的第一个命令就是:ps -ef | grep tomcat。
当时从开发那里学到这个命令的时候不知什么意思,反正就是查找对应的进程,然后启动或杀死服务。
今天我们来深入了解一下。
命令语法
grep提供两种方式:
- grep [option] [pattern] testfile
- stdout | grep [option] [pattern]
一种是对某个文件进行查找;
一种是从标准化输出中查找指定字符,如我们上面说到的命令。
其中:
option :参数选项
pattern :为查找的字符串或者正则表达式
具体的参数选项:
-i | 搜索时忽略大小写 |
-n | 显示行号 |
-o | 只显示被匹配的关键字,不会打印匹配的整行内容 |
-r | 递归搜索 |
-v | 不显示匹配行信息 |
-q | 静默模式,不输出任何信息,在shell脚本中,可以通过echo $?查看是否匹配到,0表示匹配到,1表示没有匹配到 |
-E | 使用扩展正则表达式 |
grep -i "test" testfile 从文本文件中搜索test 或 TEST字符串
grep -n -i "test" filename 显示对应的行号
grep -o -i "test" filename 只显示test字符串,不显示该行的其他内容
grep -r "test" AAA 查询AAA目录下所有文件中包含test的行
grep 结合正则表达式使用:
grep "^love" testfile 查询该文件下以love 开头的行
具体关于正则的用法,我也没大用到,回来再补充吧