正则表达式 -grep

  • 什么是正则
    (1)正则就是一串有规律的字符串,其中包括特殊字符。
    (2)掌握好正则对于编写shell脚本有很大的帮助。
    (3)各种编程语言中都有正则,原理是一样的
    (4)本章学习grep/egrep 、sed、awk.(熟练掌握)
  • gerp命令用来过滤关键字的。用单引号括起来关键词,后面跟文件名
    正则表达式 -grep_第1张图片在centos7中,使用grep命令自动添加了–color=auto选项,这样过滤出来的都会带有颜色显示了。

(1)-c选项表示打印符合要求的行数。
(2)-n选项表示输出符合要求的行以及行号。
正则表达式 -grep_第2张图片
(3)-i选项表示不区分大小写
正则表达式 -grep_第3张图片

(4)-v 选项表示取反的意思,打印不符合要求的行
正则表达式 -grep_第4张图片

(5)-r 表示遍历所有的子目录
正则表达式 -grep_第5张图片

(6)-A选项后面跟数字,过滤出符合要求的行以及下面的n行
正则表达式 -grep_第6张图片
(7)-B选项后面跟数字,过滤出符合要求的行以及上面n行
正则表达式 -grep_第7张图片
(8)-C选项后面跟数字,同时过滤出符合要求的行以及上下各n行。
正则表达式 -grep_第8张图片

  • grep/egrep在正则表达式中的应用
    (1)过滤出所有包含任意数字的行
    正则表达式 -grep_第9张图片
    (2)要想打印出不包含数字的行可以加上-v选项
grep -v '[0-9]'  /etc/inittab

正则表达式 -grep_第10张图片
(3)过滤掉所有空白行和以#开头的行

正则表达式 -grep_第11张图片

(3)过滤掉含有数字的任意一个字符
正则表达式 -grep_第12张图片
(4)过滤掉以非数字开头的行
正则表达式 -grep_第13张图片
(5)^单独跟字符或者放在方括号外面,表示以这个字符开头。当放在方括号里面来表示括号里面字符的反义。也表示“非”的意思。

(6)grep ‘r.o’ passwd //这里表示在r与o之间的任意一个字符

正则表达式 -grep_第14张图片

grep 'o*o' passwd  //这里*表示0个或者多个前面的字符

正则表达式 -grep_第15张图片

grep  '.*'  passwd   //.*表示0个或多个任意字符,空行也包括在内。

正则表达式 -grep_第16张图片

  • 指定要过滤出的字符出现次数。
    正则表达式 -grep_第17张图片 这里用到了特殊符号{ },其里面为数字,表示前面的字符要重复的次数。另外{ }还可以表示一个范围,具体格式为{n1,n2},表示重复n1到n2次前面的字符,只有一个n1表示大于或等于n1次。
  • 过滤出一个或多个指定的字符。
    正则表达式 -grep_第18张图片 这里的符号+ ,表示匹配1个或多个+前面的字符。使用egrep不用使用转义字符\。

  • grep 'o?t' paswd //这里的?号表示前面的字符出现0次或1次。
    正则表达式 -grep_第19张图片

  • 过滤出字符串1或者字符串2或者字符串3

egrep  'root|bash|1000' passwd //只要包含这3个字符串中的一个,都会被过滤。

正则表达式 -grep_第20张图片

  • egrep中()的应用
    正则表达式 -grep_第21张图片
    这里用()表示一个整体,r()o之前可以是oo或者是at。

  • 扩展
    把一个目录下,过滤所有*.php文档中含有eval的行

grep -r --include="*.php"  'eval'  /data/  

你可能感兴趣的:(正则表达式 -grep)