正则介绍_grep上中下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则介绍_grep上中下相关的知识,希望对你有一定的参考价值。

笔记内容:

9.1 正则介绍_grep

9.2 grep

9.3 grep

笔记日期:2019.8.17

 

9.1 正则介绍_grep

技术分享


正则就是各种各样的字符组合在一起形成的一串有规律的字符串,编程语言、shell脚本都需要用到正则表达式,可以利用正则来完成一些复杂的需求。

  学习正则需要用到四个工具grepegrepsedawk,其中egrepgrep的扩展,这俩者通常被归类为同一个工具。学好正则对编写shell脚本有很大的帮助。

技术分享


grep最简单的用法就是后面加一个字符串,然后匹配含有这个字符串的行:

技术分享


CentOS7grep自带了--color=auto选项:

技术分享


-c选项查看行数:

技术分享


-n选项显示行号:

技术分享


-i选项不区分大小写查看:

技术分享


-v选项是取反:

技术分享


-r选项把一些子目录下面的文件进行遍历:

技术分享

root目录下含有root字符串的文件都列出来了


-A选项后面跟数字就会列出指定字符所在行下的n行:

技术分享


-B选项则是相反,列出指定字符所在行上的n行:

技术分享


-C选项是列出指定字符所在行上下n行:

技术分享



技术分享




9.2 grep

技术分享

要注意的是所谓0-9不是说09的基数的意思,是指包含0-9的字符串,比如956包含了956这三个字符,就会被列出来。

  加-v选项就是显示不包含0-9的行,也可以理解为把不包含数字的行列出来:

技术分享


^#表示列出以#号开头的行,所以^就是表示某个字符开头的行:

技术分享


-v选项就可以过滤掉#号开头的行:

技术分享


[^0-9]表示非0-9,会把内容列出来然后0-9之外的字符都会显示颜色:

技术分享




9.3 grep

  . 表示匹配任意的单个字符的行:

技术分享


* 则表示匹配任意个字符的行:

技术分享


.* 贪婪匹配,会匹配所有的,类似于通配:

技术分享


{}可以用数字指定前面那个字符的重复范围,但是要加上脱义符:

技术分享


如果不想写脱义符可以加个-E选项或者使用egrep

技术分享

技术分享


+*有点相似,表示匹配字符出现1次上的行,而*号则是0次也算,使用+需要加上脱义符,不想使用脱义符就用egrep

技术分享


?表示字符重复次数为01

技术分享


| 是或者的意思:

技术分享


()是表示组合的意思:

技术分享




扩展

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

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


本文出自 “12831981” 博客,请务必保留此出处http://12841981.blog.51cto.com/12831981/1972729

以上是关于正则介绍_grep上中下的主要内容,如果未能解决你的问题,请参考以下文章

9.1 正则介绍_grep(上);9.2 grep(中);9.3 grep(下)

六周第一次课 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下

9.1 正则介绍_grep上 9.2 grep中 9.3 grep下

9.1 正则介绍_grep上 9.2 grep中 9.3 grep下

正则介绍_grep

Linux - 正则介绍_grep