grep与正则表达式

grep程序:

Linux文本处理三剑客--grep sed awk

grep:文本 行过滤工具

sed: 文本 行编辑器(流编辑器)

awk: 报告生成器,做文本输出格式化

grep 包含三个命苦:grep   egrep   fgrep ,他们是用来进行 行模式(pattern)匹配的

egrep =grep -E //使用扩展的正则表达式进行匹配

fgrep = fast grep //只使用文件通配符进行匹配

grep默认使用正则表达式进行文本匹配

grep用法:

grep [option]...PATTERN (regexp)

grep的常见选项--option

-E 支持使用扩展的正则表达式(ERE)(regexp

-P 使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk使用的regexp引擎也不相同)

-i 忽略大小写

-v 反选

-o 仅仅输出匹配的内容(默认输出的是匹配到的行)

--color=auto 语法着色

-n 显示行号

-w 匹配固定单词

PATTERN--正则表达式

作用:通过一些特殊字符来表示一类字符内容然后交给前面的命令来执行,如果使用特殊字符本身的含义需要\进行转译

回顾:文件通配符(globbing

    * ?  [] [^]

1.字符匹配

.任意一个字符,相当于?

[] []范围内的任意一个字符

[^] 范围外任意一个字符

2.次数匹配

*=+ + 匹配前面的字符0次到n

\?匹配前面的字符0次到1

\+ 匹配前面的字符1次到n

\{m\}匹配前面的字符m

a\{7\}aaaaaaa

\{m,n\}\ 匹配前面的字符mn

\{0,n}匹配前面的字符0次到n

\{m,\}匹配前面的字符至少m

3.位置锚定

^锚定行首

$锚定行尾

\b锚定词首和锚定词尾

\>锚定词尾

\<锚定词首

4.分组

\(\)分组 例如\(abc\)

默认情况下Linux系统会为分组指定变量,变量的表示形式为\1\2\3...

posted @ 2019-08-14 20:25  Youngstrayschoolgirl  阅读(217)  评论(0编辑  收藏  举报