当前位置:首页 > 科技新闻 > 系统服务 > 正文

# 聊一聊悟空编辑器 #linux命令讲解
2021-10-22 09:54:33

grep命令1、作用: Linux系统中grep命令是一种强大的文本搜索工具,它能使用多种选项及正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式打印,它的使用权限是所有用户。 2、语法: grep [option...] [patterns] [file...]


可以有零个或多个选项参数,以及零个或多个文件参数。patterns参数包含一个或多个由|分隔的模式,当通过“-e patterns”或“-f file”选项给出模式时,将忽略该参数。当在shell命令中使用grep时,通常应该引用模式。3、常用选项: -E :开启扩展(Extend)的正则表达式。 -i :忽略大小写(ignore case)。 -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。 -n :显示行号 -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而搜寻的是like,就可以使用-w选项来避免匹配liker -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。 -o :只显示被模式匹配到的字符串。 –color :将匹配到的内容以颜色高亮显示。 -A n:显示匹配到的字符串所在的行及其后n行,after -B n:显示匹配到的字符串所在的行及其前n行,before -C n:显示匹配到的字符串所在的行及其前后各n行,context 4、基本正则表达式

  1. 1匹配字符:

. :任意一个字符。[abc] :表示匹配一个字符,这个字符必须是abc中的一个。 [a-zA-Z] :表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。 [^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符。 对于一些常用的字符集,系统做了定义: [A-Za-z] 等价于 [[:alpha:]] [0-9] 等价于 [[:digit:]] [A-Za-z0-9] 等价于 [[:alnum:]] tab,space 等空白字符 [[:space:]] [A-Z] 等价于 [[:upper:]] [a-z] 等价于 [[:lower:]] 标点符号 [[:punct:]] 5、常见使用示例

  1. 1 示例1

搜索日志文件中是否存在错误信息,假如错误信息的关键字是"error",可以使用如下命令grep error test.log


  1. 2 示例2

如果搜索的字符串不包含空格则可以不需要引号,如果包含空格,则需要使用双引号或者单引号包起来。

  1. 3 示例3

搜索目录下所有文件,包含子文件夹,加上-r参数即可grep -r "xxxxxx" *


  1. 4 示例4

搭配其他命令一起使用,比如:搭配tailf命令实时搜索相关字符串,搭配ps命令搜索相关进程是否启动。tailf xxx.log | grep "good" ps -ef | grep "goodprocess"



  1. 5 示例5

搜索历史日志文件,但是历史日志文件被打包成gz文件了,全部解压出来再使用grep搜索就太麻烦了,这时可以使用zgrep。zgrep -a "good" xxxx.tar.gz


  1. 6 示例6

搜索不固定的字符串,但是这些字符串有一定的规律,这时可以使用正则表达式。假如日志中的日期格式为1009-123030,想要搜索12点到13点的日志,则可使用如下命令grep "1009-1[2-3][[:digit:]]{4}" test.log grep -E "1009-1[2-3][[:digit:]]{4}" test.log egrep "1009-1[2-3][[:digit:]]{4}" test.log 这3种方式都可以





  1. 7 示例7

如果搜出来的日志比较多,全部打印出来无法阅读,那么可以将其存到一个文件中。egrep "1009-1[2-3][[:digit:]]{4}" test.log > 1213.log


  1. 8 示例8

同时搜索多个关键字,使用|分割关键字,如下多个关键字是或的关系grep "hund|world|China" test.log grep -E "hund|world|China" test.log egrep "hund|world|China" test.log 这3种方式都可以





多个关键字与的关系,使用多个grep分别搜索,同一行包含所有关键字才会有结果。复制 grep hund test.log | grep world | grep China


©著作权归作者所有:来自51CTO博客作者恒生LIGHT云社区的原创作品,如需转载,请注明出处,否则将追究法律责任一个提高工作效率的常用linux命令 https://blog.51cto.com/u_7932852/4272987

本文摘自 :https://blog.51cto.com/u