- grep 显示匹配行(print lines matching a pattern)。
-v 反显示
-e 使用扩展正则表达式
- 匹配操作符
–\ 转义字符
–. 匹配任意单个字符
–[1249a],[^12],[a-k] 字符序列单字符占位
–^ 行首
–$ 行尾
–\<,\>,\<abc 单词首尾边界
–| 连接操作符
–(,) 选择操作符
–\n 反向引用
- 重复操作符:
–? 匹配0到1次。
–* 匹配0到多次。
–+ 匹配1到多次。
–{n} 匹配n次。
–{n,} 匹配n到多次。
–{n,m} 匹配n到m次。
- 与扩展正则表达式的区别:grep basic
–\?, \+, \{, \|, \(, and \)
- 匹配任意字符
.*
示例:
[root@CentOS64 ~]# vi test
1 aabbcaaa
2 aa bbc aaa
3 bb bbc bbb
4 asgodssgoodsssagodssgood
5 asgodssgoodsssagoodssgod
6 sdlkjflskdjf3slkdjfdksl
7 slkdjf2lskdjfkldsjl
- 查询包含a的所有行
[root@CentOS64 ~]# grep "a" test
aabbcaaa
aa bbc aaa
asgodssgoodsssagodssgood
asgodssgoodsssagoodssgod
- 查询包含aaa的行
[root@CentOS64 ~]# grep "a\{3\}" test 或者为(E代表扩展) grep -E "a{3}" test
aabbcaaa
aa bbc aaa
- 包含左边界为aa的单词的行
[root@CentOS64 ~]# grep "\<aa" test
aabbcaaa
aa bbc aaa
- 包含单词aaa的行
[root@CentOS64 ~]# grep "\<aaa\>" test
aa bbc aaa
- 单词中b至少重复2次,至多重复3次
[root@CentOS64 ~]# grep "b\{2,3\}" test
aabbcaaa
aa bbc aaa
bb bbc bbb
- 取出第四行
[root@CentOS64 ~]# grep ".*god.*good.*god.*good.*" test
asgodssgoodsssagodssgood
- 反向引用,取出第四行。1对应第一个括号,2对应第二个括号
[root@CentOS64 ~]# grep ".*\(god\).*\(good\).*\1.*\2" test
asgodssgoodsssagodssgood