8、通过grep使用正则表达式

正则表达式:他通过一个字符串来描述、匹配一些符合某个语法规则的字符串,从而可以对这些符合语法规则的字符串,进行相应的处理。

常见支持正则表达的工具如下:

Grep命令族   用于匹配文本行

Sed流编辑器  用于改变输入流

Awk          用于处理字符串语言

Moreless   文件查看程序

Edvivim   文本编译器

基本正则表达式

.            匹配单个字符

[]           匹配制定范围内的多个字符

[^]          匹配指定范围外的任意单个字符

^           行首定位符

$           行为定位符

^$         匹配空白行

*          限定符之一本身不代表任何字符用来指定前面一个字符出现任意次,包括零次。

+          限定符之一,前面字符至少出现一次

|          表示或的关系

()          表示一组可选值的集合|()表示一组可选值

.*         任意长度任意字符

\?         匹配前面字符一次或者零次

\<         后面字符必须作为词首出现

\>         前面字符必须作为词尾出现

\d         数字匹配

\D         非数字匹配

\s         空白字符匹配

\S         非空白字符匹配

\{M,N\}     \用来转义,防止{}bash来解析,匹配前面字符至少m次,至多n,\{1,\}表示最少一次,最多无上限。

运算符优先级

\转义符        

[]方括号表达式      

()分组       

*+、?、{m}{m}{mn}限定符        

普通字符     按照从左到右

^$定位符

|  或运算   

 

Grep 全局搜索正则表达式并打印文本行

Grep  [option]  pattern   [file]

[option]

-c         只打印匹配文本行的行数,不显示匹配内容

-i          匹配时忽略大小写

-h         当搜索多个文件时,不显示匹配文件的前缀名

-l          只列出含有文本行的文件的文件名,不显示具体内容。

-s          不显示关于不存在或者无法读取文件的错误信息

-v          只显示不匹配的文本行

-w         匹配整个单词

-x          匹配整个文本行

-r          递归搜索

-q          禁止输出任何匹配结果,以推出状态码的形式输出,0表示找出了匹配文本行

-E          支持扩展正则表达式

-P          支持perl正则表达式

-F          不支持正则表达式,将模式按字面意义书出