linux 正则表达式 使用grep命令

 

 

最常应用正则表达式命令是 awk sed grep

 

[root@MongoDB ~]# cat mike.log 
I am mike!
I like linux.

I like play football, tennis and reading.
my qq is 123456789!
my blog is https://i.cnblogs.com
my blog is i.miek.com
I am miek.
not MIEK
NOT MIKE

 

 

 

 

 

基础正则字符说明

1.^word 匹配以word开头的内容  vi/vim编辑器里^代表一行的开头

2.word$ 匹配以word结尾的内容  vi/vim编辑器里$代表一行的结尾

3. ^$ 表示空行

 

a.过滤出来以m开头的行

 

[root@MongoDB ~]# grep "^m" mike.log 
my qq is 123456789!
my blog is https://i.cnblogs.com
my blog is i.miek.com

b.过滤出来以m结尾的行

 

[root@MongoDB ~]# grep "m$" mike.log 
my blog is https://i.cnblogs.com
my blog is i.miek.com

 

c.过滤匹配空行的行

grep -n 显示匹配的行号

 

[root@MongoDB ~]# grep -n '^$' mike.log 
3:
11:

 

 

 

grep -v 排除内容  指定字段不显示

过滤出 不带 空行的行,其他行都打印

 

[root@MongoDB ~]# grep -vn "^$" mike.log 
1:I am mike!
2:I like linux.
4:I like play football, tennis and reading.
5:my qq is 123456789!
6:my blog is https://i.cnblogs.com
7:my blog is i.miek.com
8:I am miek.
9:not MIEK
10:NOT MIKE

 

 

 

4. . 代表且只能代表任意一个字符。

5. \ 转义

6. * 重复0个或多个前面的一个字符 例如o* 匹配没有o,有一个o或多个o

7 .* 匹配所有字符  ^.*以任意多个字符开头, .*$ 以任意多个字符结尾

 

a. 匹配任意一个字符  .

因为第三行没有字符 没有匹配到

 

[root@MongoDB ~]# grep -n "." mike.log 
1:I am mike!
2:I like linux.
4:I like play football, tennis and reading.
5:my qq is 123456789!
6:my blog is https://i.cnblogs.com
7:my blog is i.miek.com
8:I am miek.
9:not MIEK
10:NOT MIKE

 

 

.*

 

[root@MongoDB ~]# grep -n ".*" mike.log 
1:I am mike!
2:I like linux.
3:
4:I like play football, tennis and reading.
5:my qq is 123456789!
6:my blog is https://i.cnblogs.com
7:my blog is i.miek.com
8:I am miek.
9:not MIEK
10:NOT MIKE
11:

 

 

 

 匹配 mi..    .. 任意字符

root@MongoDB ~]# grep -n "mi.." mike.log 
1:I am mike!
7:my blog is i.miek.com
8:I am miek.

 

grep -i 不区分大小写

[root@MongoDB ~]# grep -ni "mi.." mike.log 
1:I am mike!
7:my blog is i.miek.com
8:I am miek.
9:not MIEK
10:NOT MIKE

 

匹配以.结尾 需要转义

[root@MongoDB ~]# grep -n "\.$" mike.log 
2:I like linux.
4:I like play football, tennis and reading.
8:I am miek.

 

-o 只显示匹配的内容

[root@MongoDB ~]# grep -no "mi.." mike.log 
1:mike
7:miek
8:miek

 

 

8. [abc]  匹配字符串集合内任意一个字符 [a-zA-Z],[0-9]

9. [^abc]  匹配不包含^后的任意一个字符的内容

中括号里的^为取反

 

匹配0-9数字的行 匹配数字的行

[root@MongoDB ~]# grep  "[0-9]" mike.log 
my qq is 123456789!

 

转载于:https://www.cnblogs.com/mingerlcm/p/10930900.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值