linux正则表达式

正则表达式在linux中是非常重要的一环,很多时候我们需要通过正则表达式来达到我们的目的,如分析日志,过滤数据等。
有过开发经验的同学都会和grep打交道,我们处理问题最常用的方法就是查看日志,那么多日志我们不可能一行一行看,所以我们通常会使用grep命令+正则表达式获取我们想要的数据,常见的如异常信息。
一.grep命令基本介绍
学习正则表达式之前还是简单介绍下grep命令,grep命令后面可以接 -A或 -B或-C 这里的-A是after的意思,-A后面可接数字n,将要找的数据后n行也列出来,-B意思是before 将要找的数据前n行也列出来 -C是前后n行都列出来。
举例:cat test.log|grep -A5 'test' 这里会将包含test的数据及数据的后5行也列出来
grep后面还可加上 --color=auto 将满足grep条件的数据显色列出来
注意:这里的-A -B可以组合使用 如cat test.log|grep -A5 -B4 --color=auto 'test'
二.基础正则表达式
学习了grep命令的基本使用,下面我们使用grep命令来练习正则表达式。
1.grep反向选择:可以使用-v参数 如cat test.log|grep -v 'test' 会将日中中不包含test的列展示出来
2.grep不区分大小写:使用-i参数 如cat test.log|grep -i 'test' 不仅会列出包含test的列,还会列出如包含Test TEST的列
3.利用[]查找字符:如果我们想查找test或tast这两个单词,可以使用t[ae]st来表示
4.利用[^]实现单字符反向选择:如果我们查找est又不想是test的结果 可以使用[^t]est来过滤 如果不想前面出现小写字母 可以使用[^a-z]est 我们可以使用[0-9],[a-z],[A-Z]分别表示数字,小写字母,大写字母
5.行首与行尾字符^$:这里^表示行首出现 $表示行尾出现 如'^test'表示只过滤出以test在行首的数据 如果我们想要开头是小写字符的 使用^[a-z]
6.转译字符\:很多时候我们会发现grep失灵 明明有数据 却grep不出来 可能是我们grep中包含特殊字符 比如. 需要使用转译字符\.

7.任意一个字符.与重复字符*:如'g..d'可以匹配good glad等字符 如果是oo*则表示 第一个o是必需存在的 第二个o是可有可无的 可以匹配出o,oo,ooo等 当我们需要至少两个o的时候 可以使用ooo*

参考:鸟哥的私房菜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值