linux grep 正则表达式

本文深入探讨了正则表达式的使用技巧,包括基础匹配规则、操作符详解及实际应用场景,通过多个实例演示如何精确匹配特定字符串,是编程中进行文本处理的必备技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

匹配规则
匹配操作符
\                  					转义字符
. 	                 				匹配任意单个字符
[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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值