匹配规则
匹配操作符
\ 转义字符
. 匹配任意单个字符
[1249a],[^12],[a-k] 字符序列单字符占位
^ 行首
$ 行尾
\<,\>:\<abc 单词首尾边界
| 连接操作符
(,) 选择操作符
\n 反向引用
重复操作符:
? 匹配0到1次。
* 匹配0到多次。
+ 匹配1到多次。
{n} 匹配n次。
{n,} 匹配n到多次。
{n,m} 匹配n到m次。
与扩展正则表达式的区别:grep basic
\?, \+, \{, \|, \(, and \)
.* 匹配任意字符
先创建文件grep1.text内容为:
ooxx12121212ooxx
ooxx 12121212
oox 12121212
1212 ooxx 1212
oo3xx
oo4xx
ooWxx
oomxx
$ooxx
oo1234xx
ooxyzxx
Demo1
写出含ooxx的正则表达式
[root@linux1 tmp]# grep 'ooxx' grep.text
oxx12121212ooxx
ooxx 12121212
1212 ooxx 1212
$ooxx
Demo2
写出含有数字的正则表达式
[root@linux1 tmp]# grep '[0-9]' grep.text
oxx12121212ooxx
ooxx 12121212
oox 12121212
1212 ooxx 1212
oo3xx
oo4xx
oo1234xx
Demo3
写出含有4位数字的正则表达式
[root@linux1 tmp]# grep -E '[0-9]{4}' grep.text
oxx12121212ooxx
ooxx 12121212
oox 12121212
1212 ooxx 1212
oo1234xx
Demo4
写出含有ooxx单词的正则表达式
[root@linux1 tmp]# grep '\<ooxx\>' grep.text
ooxx 12121212
1212 ooxx 1212
$ooxx
Demo5
写出含有4位整数且的正则表达式
[root@linux1 tmp]# grep -E '(^[0-9]|[^0-9][0-9])[0-9]{2}($[0-9]|[0-9][^0-9])' grep.text
1212 ooxx 1212
oo1234xx
创建grep2.text 文件
aaabbcaaa
aa bbc aaa
bb bbc bbb
asgodssgoodsssagodssgood
asgodssgoodsssagoodssgod
sdlkjflskdjf3slkdjfdksl
slkdjf2lskdjfkldsjl
Demo1
查询包含a的行
[root@linux1 tmp]# grep 'a' grep.text
aabbcaaa
aa bbc aaa
asgodssgoodsssagodssgood
asgodssgoodsssagoodssgod
Demo2
查询包含3个以上a的行
[root@linux1 tmp]# grep -E 'a{3}' grep.text
aabbcaaa
aa bbc aaa
Demo3
查询包含以3a开头的词行
[root@linux1 tmp]# grep '\<aaa' grep.text
aaabbcaaa
aa bbc aaa
Demo4
查询包含3a的词行
[root@linux1 tmp]# grep '\<aaa\>' grep.text
aa bbc aaa
Demo5
查询包含2-3b的行
[root@linux1 tmp]# grep -E 'b{2,3}' grep.text
aaabbcaaa
abbcaaa
aa bbc aaa
bb bbc bbb