shell之路 Linux正则工具【第一篇】文本处理三剑客之grep

通配符 元字符 限定符 正则表达式

转义符:保护元字符或通配符不被shell解析

需要说明的是:

1.通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆。把通配符理解为shell 特殊代号字符就可。而且涉及的只有*,? [] ,{} 这几种。

2.shell 元字符,基本是作用在命令上面,用作多命令分割(或者参数分割)。因此看到与通配符有相同的字符,但是实际上作用范围不同。所以不会出现混淆。详情可参考 https://www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html

3.正则表达式 https://www.cnblogs.com/hyit/articles/4727760.html

总结:我们在使用正则工具grep sed awk时,如果遇到. ^ $ + * ? [] ,{}这类字符(通配符 元字符 限定符)要匹配,就在前面加反斜线\

作用

查找符合模式匹配规则(pattern)的所有

命令格式

第一种形式:grep [option] [pattern] [file1,file2...]

第二种形式:stdout | grep [option] [pattern]

常用选项

注意:
1.默认情况下,关键字内的正则符号,grep是支持的,如果想把正则符号作为要匹配的字符串,需要加-F参数

2.基础的正则表达式和扩展的表达式的区别在于,后者支持更强大的功能(正则不只是限于grep,sed awk等均能使用)

3.grep命令-E和-F选项不能同时使用,egrep命令不能使用-F选项。一个是支持正则表达式,一个是不支持正则表达式,有歧义。

扩展规则
	1、 + :表示重复一个或一个以上的前一个 RE 字符
	2、 ? : 表示重复零个或一个前一个 RE 字符
	3、 | :表示用或的方式找出数个字符串
	4、 () : 表示找出群组字符串
	5、 ()+ : 多个重复群组判别

 

-v	显示不匹配pattern的行
-i	搜索时忽略大小写显示行号
-n	显示行号
-E	支持扩展的正则表达式,等效于egrep
-F	不支持正则表达式,按字符串的字面意思进行匹配
-r	递归搜索

了解选项

-c		只输出匹配行的数量 ,不显示具体内容
-w	    匹配整词
-x		匹配整行
-l		只列出匹配的文件名,不显示具体匹配行内容
-A n	下n行
-B n   上n行
-c    上下n行

案例

 

 

 

posted @ 2015-08-25 20:13  沐风先生  阅读(217)  评论(0编辑  收藏  举报