字符 |
描述 |
^尖角号 |
^word 找以word开头的行 |
[root@oldboy36 data]# grep "^m" oldboy.txt my blog is http://oldboy.blog.51cto.com my qq num is 49000448. my god,i am not oldbey,but OLDBOY! [root@oldboy36 data]# |
$ |
word$ 查找以word的结尾的行 |
[root@oldboy36 data]# grep "m$" oldboy.txt my blog is http://oldboy.blog.51cto.com [root@oldboy36 data]# |
^$ |
表示空行,不是空格 |
[root@oldboy36 data]# grep -n "^$" oldboy.txt 3: 8: 11: [root@oldboy36 data]# |
.(点) |
代表且只能代表任意一个字符/文本/符号(不匹配空行) |
[root@oldboy36 data]# grep "." oldboy.txt .显示了所有内容空格可以找到但是空行不可以找到 I am oldboy teacher! I teach linux. I like badminton ball,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com our site is http://www.etiantian.org my qq num is 49000448. not 4900000448. my god,but OLDBOY! [root@oldboy36 data]# [root@oldboy36 data]# grep "ol.boy" oldboy.txt I am oldboy teacher! my blog is http://oldboy.blog.51cto.com [root@oldboy36 data]# grep "ol.*" oldboy.txt I am oldboy teacher! my blog is http://oldboy.blog.51cto.com my god,i am not oldbey,but OLDBOY! |
|
转义字符,让特殊含义的字符脱掉马甲,现出原形 找出以点结尾的行 |
[root@oldboy36 data]# grep ".$" oldboy.txt I teach linux. my qq num is 49000448. not 4900000448. [root@oldboy36 data]# 穿上马甲(扩展正则) n 匹配一个换行符 b单词边界, bcoolb 匹配cool,不匹配coolant &;在边界的右边 &;在边界的左边 r 匹配回车 t 匹配一个横向制表符 tab |
* |
重复 前一个文本/字符0次或多次 之前的一个文本或字符连续了出现了0个或多个连续 出现了0次 就代表啥也没有 一般跟0* 正则 贪婪 在表示重复的时候 尽可能的拿的更多 匹配的更多,找的更多。 |
[root@oldboy36 data]# grep "0*" oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com our site is http://www.etiantian.org my qq num is 49000448. not 4900000448. my god,but OLDBOY! |
.* |
代表所有 包含空行 ^.*以任意多个字符开头;.*$以任意多个字符结尾 正则表达式表示连续出现连续出现或者连续的时候有多少吃多少。 正则表达式的贪婪 |
[root@oldboy36 data]# grep ".*" oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com our site is http://www.etiantian.org my qq num is 49000448. not 4900000448. my god,but OLDBOY! [root@oldboy36 data]# 以所有字符开头一直到字母m [root@oldboy36 data]# grep "^.*m" oldboy.txt I am oldboy teacher! I like badminton ball,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com my qq num is 49000448. my god,i am not oldbey,but OLDBOY! |
^.* |
以任意多个字符串开头 .* 尽可能多吃 有多少吃多少 |
[root@oldboy36 data]# grep "^.*m" oldboy.txt I am oldboy teacher! I like badminton ball,but OLDBOY! |
括号表达式(筐) 表示一个整体相当于一个符号 文本 一次只匹配一个符号。 |
[abc] [0-9] +[.,/] |
匹配字符集合(一个框里便有很多条件)内的任意字符a或b或c;[a-z]匹配所有小写字母 筐:代表的一个整体,里面啥都可能有 [abc]找a或b或c,可以写成[a-c] 可以进行组合 [a-zA-Z] 正则表达式认为只要是在框里的就是一样的 |
匹配字符集合(一个框里便有很多条件)内的任意字符a或b或c [root@oldboy36 data]# grep [a-c] oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com our site is http://www.etiantian.org y god,i am not oldbey,but OLDBOY! [root@oldboy36 data]# |
[^abc] |
匹配不包含……后的任意字符a或b或c,是对[abc]的取反,且与^含义不同. |
[root@oldboy36 data]# grep [^a-c] oldboy.txt I am oldboy teacher! I teach linux. I like badminton ball,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com our site is http://www.etiantian.org my qq num is 49000448. not 4900000448. y god,i am not oldbey,but OLDBOY! [root@oldboy36 data]#
|
基础正则的命令(grep)如何支持高级正则(扩展正则) |
a{n,m} |
重复前面a字符n到m次。 如果用egrep或sed -r 可去掉斜线 最少出现n次,最多出现m次 表示穿上马甲 学生=======班长 扩展正则 |
[root@oldboy36 data]# egrep "0{1,2}" oldboy.txt my qq num is 490004480. not 4900000448. [root@oldboy36 data]# egrep -o "0{1,2}" oldboy.txt 00 0 0 00 00 0 [root@oldboy36 data]# |
a{n,} |
重复前面a字符至少n次,如果用egrep或sed -r 可去掉斜线 |
[root@oldboy36 data]# egrep "0{3}" oldboy.txt my qq num is 490004480. not 4900000448. [root@oldboy36 data]# |
a{n} |
重复前面a字符n次,如果用egrep或sed -r 可去掉斜线 |
[root@oldboy36 data]# egrep "0{3,}" oldboy.txt my qq num is 490004480. not 4900000448. [root@oldboy36 data]# egrep -o "0{3,}" oldboy.txt 000 00000 [root@oldboy36 data]# |
a{,m} |
重复前面a最多m次,如果用egrep或sed -r 可去掉斜线 |
[root@oldboy36 data]# egrep "0{,3}" oldboy.txt I am oldboy teacher! I teach linux. ++++++++++++++++++++++++++++++++++ I like badminton ball,billiard ball and chinese chess! my blog is http://oldboy.blog.51cto.com our site is http://www.etiantian.org my qq num is 490004480. not 4900000448. y god,but OLDBOY! [root@oldboy36 data]# egrep -o "0{,3}" oldboy.txt 000 0 000 00 [root@oldboy36 data]# |