码迷,mamicode.com
首页 > 系统相关 > 详细

linux 正则表达式 使用grep命令

时间:2019-06-01 19:28:35      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:说明   nbsp   表达   god   roo   正则表达   grep -n   数字   and   

 

 

最常应用正则表达式命令是 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!

 

linux 正则表达式 使用grep命令

标签:说明   nbsp   表达   god   roo   正则表达   grep -n   数字   and   

原文地址:https://www.cnblogs.com/mingerlcm/p/10930900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!