grep
grep :查找正则表达式
egrep或grep -E : 查找查找包括扩展元字符在内的正则表达式
fgrep:不解析正则表达式,只按字面意思查找
一 对于正则表达式的基本元字符grep和egrep是一样的
基本元字符: ^, $, ., *, [], [^] , \<, \>,
二 对于正则表达式的扩展元字符egrep可以识别,但grep要在扩展元字符前加\才能识别
在grep中要使用这些扩展元字符只需在扩展元字符前加, 如果不加\的话扩展元字符被识别成字面的字符来搜索
扩展原字符 +, ?, {}, ()
三 grep各种查找结果的退出状态码
- 查到结果的退出状态码为0
[root@DTOS data]# grep 'andy' test.txt ;echo $?
andy
0
- 没查到结果的退出状态码为1
[root@DTOS data]# grep 'anty' test.txt ;echo $?
1
- 查找的文件不存在的退出状态码为2
[root@DTOS data]# grep 'anty' t.txt ;echo $?
grep: t.txt: No such file or directory
2
- 用q参数可以不输出搜索到的结果,只得到退出状态码
[root@DTOS data]# grep -q 'andy' test.txt ;echo $?
0
四 正则中\w \W \b的使用
1. \w 代表字符即数字和字母[a-Z0-9]
[root@DTOS data]# grep '\wandy' test.txt
andy12345andyandy
21321andy
2. \W 代表非字符即特殊字符 [^a-Z0-9]
[root@DTOS data]# grep '\Wandy' test.txt
[0{3}andy
...andy././/.
3. \b代表词边界,相当于\<或\>
[root@DTOS data]# grep '\bandy\b' test.txt
[0{3}andy
...andy././/.
andy
五 grep的选项
- -i
- -l
-
-n
-
-c
-
-o
-
-B 显示匹配行之前的几行
-
如果搜索词是这些参数需要加上, 否则会把当做是参数处理