七 、linux正则表达式
为处理大量的字符串而定义的一套规则和方法
1)linux正则表达式以行为单位处理
2)alians grep = “grep –color=auto”,让匹配的内容显示颜色
3)注意字符集,export LC_ALL=C
[root@pyrene ~]# alias grep='grep --color=auto'
[root@pyrene ~]# export LC_ALL=C
[root@pyrene ~]# echo $LC_ALL --检查字符集是否正确
C
一、正则表达式第一波字符说明
1)^word 匹配word开头的内容 vim里面的^代表一行的开头
[root@pyrene ~]# grep "^m" oldboy.log
my blog is http://www.cnblogs.com
my qq is 3110436742
my god ,i am not p but pyrene
2)word匹配以word结尾的内容,vim里面的代表一行的结尾
[root@pyrene ~]# grep "m$" oldboy.log
my blog is http://www.cnblogs.com
3)^$ 代表空行
[root@pyrene ~]# grep -n "^$" oldboy.log 这里-n显示行号
3:
7:
二、基础正则表达式第二波字符说明
4). 代表且只能表示任意一个字符
5)\ 转移符号,让有特殊身份意义的字符脱掉马甲
6)* 重复0个或者多个前面的一个字符
7).* 匹配所有字符
[root@pyrene ~]# grep -n "." oldboy.log
1:i am pyrene and
2:i like linux
4:i like badminton ball . billiard ball and chinese chess!
5:my blog is http://www.cnblogs.com
6:my qq is 3110436742
8:my god ,i am not p but pyrene
[root@pyrene ~]# grep -n ".*" oldboy.log
1:i am pyrene and
2:i like linux
3:
4:i like badminton ball . billiard ball and chinese chess!
5:my blog is http://www.cnblogs.com
6:my qq is 3110436742
7:
8:my god ,i am not p but pyrene
三、第三波正则字符说明
8)[abc] 匹配字符集合内任意一个祖父[a-zA-Z],[0-9]
9)[^abc] 匹配不包含^后的任意一个字符的内容
中括号里的^为取反,注意和中括号外面的以…开头的区别
[root@pyrene ~]# grep "[abc]" oldboy.log
i am pyrene and
i like badminton ball . billiard ball and chinese chess!
my blog is http://www.cnblogs.com
my god ,i am not p but pyrene
[root@pyrene ~]# grep "[^abc]" oldboy.log
i am pyrene and
i like linux
i like badminton ball . billiard ball and chinese chess!
my blog is http://www.cnblogs.com
my qq is 3110436742
my god ,i am not p but pyrene
10) a\{n,m\} 重复a n到m次,前一个重复的字符,如果要用egrep /sed –r可以去掉斜线
an, 重复a至少n次前一个重复的字符
a\{n\} 重复a n次
a\{,m\}????
注意egrep或者sed –r过滤一般特殊字符可以不转义
[root@pyrene ~]# grep "0\{0,\}" oldboy.log
i am pyrene and
i like linux
i like badminton ball . billiard ball and chinese chess!
my blog is http://www.cnblogs.com
my qq is 3110436742
my god ,i am not p but pyrene
扩展正则表达式
1)+ 表示重复一个或一个以上前面的字符
[root@pyrene ~]# grep -E "go+d" oldboy.log
my god ,i am not p but pyrene
2)? 表示重复0个或者1个前面的字符
3)| 表示同时过滤多个字符串
[root@pyrene ~]# egrep "3306|1521" /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
4)() 后向引用,分组过滤
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单