grep之正则表达式的理解及应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grep之正则表达式的理解及应用相关的知识,希望对你有一定的参考价值。

  正则表达式在本周学习中是个难点和重点,其中难免会有很多坑,也难免会不停的往里跳,当跳的比较多了也就长记性了,通过很多次练习慢慢也就能发现其中暗藏玄机,成功的避开大坑选择往小坑里跳了,我相信在以后的学习中会不断进步、勤加练习终究会跳出来的。好了,以下是本人对正则表达式的一点理解,如有错误之处请联系我,会修改和学习的。

  一、正则表达式之grep.

 正则表达式是一种符号表示法,用于识别文本模式。Linux处理正则表达式的主要程序是grep。grep搜索与正则表达式匹配的,并将结果输送至标准输出。

    (1)正则表达式之匹配模式。

     ①格式

     grep按下述方式接受选项和参数(其中,REGEXP表示正则表达式)

     grep [option] REGEXP file

  ②具体选项



   选项       含义                功能描述
-iignore case忽略大小写
-vinvert match不匹配匹配的
-lfile-with-match输出匹配的文件名
-Lfile-without-match输出不匹配的文件名
-ccount输出匹配的数目(行数)
-nnumber输出匹配行的同时在前面加上文件名及在文件名中的行数
-hno-filename抑制文件名的输出

  ③举例说明


  1、 显示/proc/meminfo文件中以大小s开头的行

  技术分享 

  2、显示/proc/meminfo文件中不以s开头的行

  技术分享

  3、显示/proc/meminfo文件中大s开头的行数

  技术分享

  4、显示/proc/meminfo文件中大s开头的行数并且在文件名上加上行数

  技术分享

                          华丽的分割线                                                    


 二、下表包含了元字符的列表以及它们在正则表达式上下文中的行为:

   

   字符
                 说明
^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配。
$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与“\n”或“\r”之前的位置匹配。
*零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}。
+
一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,}。
?零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。
{n}n 是非负整数。正好匹配 n 次。例如,“o{2}”与“Bob”中的“o”不匹配,但与“food”中的两个“o”匹配。
{n,}n 是非负整数。至少匹配 n 次。例如,“o{2,}”不匹配“Bob”中的“o”,而匹配“foooood”中的所有 o。“o{1,}”等效于“o+”。“o{0,}”等效于“o*”。
{n,m}M 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。例如,“o{1,3}”匹配“fooooood”中的头三个 o。‘o{0,1}‘ 等效于 ‘o?‘。注意:您不能将空格插入逗号和数字之间。
|或的意思。例如:"AAA|BBB"满足的例子AAA、BBBpp
.任意字符。例如:"a.c"满足的例子abc、fapcc
()将候选的所有元素放在()内,用|隔开。例如:"a(1|2|3)bc"满足的例子a1bc、mba3bcd
[:alnum:]字母和数字,与[A-Za-z0-9]等价
[:alpa:]字母,与[A-Za-z]等价
[:digit:]数字,与[0-9]等价
[:xdigit:]十六进制字符,与[0-9A-Fa-f等价]
[:blank:]空格和制表符
[:lower:]小写字母
[:upper:]大写字母

以上是关于grep之正则表达式的理解及应用的主要内容,如果未能解决你的问题,请参考以下文章

通配符与正则表达式元字符的理解及grep的实例应用

Linux文本处理三剑客之grep及正则表达式

Linux操作系统基础解析之——grep命令家族及正则表达式初识

linux初学之——正则表达式及grep系

llinux文本三剑客之grepegrep及相应的正则表达式和用法

正则表达式 与grep