18:
goog
le is the best tools for search keyword.
19:
goooooog
le yes!
20:
go! go! Let's g
o.
因为是代表
g
开头与
g
½尾,中间任意字符均可½受,所以,第
1, 14, 20
行是可½受的喔!
这个
.*
的
RE
表示任意字符是很常见的,希望大家能够理½并且熟悉!
再出一题,如果我想要找出『任意
数字』的行列呢?因为½有数字,所以就成为:
[dmtsai@study ~]$
grep
-
n '[0
-
9][0
-
9]*' regular_express.txt
5:However, this dress is about $
3183
dollars.
15:You are the best is mean you are the no.
1
.
虽然使用
grep -n '[0-9]' regular_express.txt
也可以得到相同的½果,
但鸟哥希望大家能够理½上面指
令当中
RE
表示法的意义才好!
.
例题五、限定连续
RE
字符范围
{}
在上个例题当中,我们可以利用
.
与
RE
字符及
*
来设定
0
个到无限多个重复字符,
那如果我想
要限制一个范围区间内的重复字符数呢?举例来说,我想要找出两个到五个
o
的连续字符串,该如
何作?这时候就得要使用到限定范围的字符
{}
了。
但
因为
{
与
}
的符号在
shell
是有特殊意义
的,因此,
我们必须要使用跳脱字符
\
来让他失去特殊意义才行。
至于
{}
的语法是这样的,假设
我要找到两个
o
的字符串,可以是:
[dmtsai@study ~]$
grep
-
n 'o
\
{2
\
}' regular_express.txt
1:"Open Source" is a g
oo
d mechanism to develop programs.
2:apple is my favorite f
oo
d.
3:F
oo
tball game is not use feet only.
9:Oh! The soup taste g
oo
d.
18:g
oo
gle is
the best t
oo
ls for search keyword.
19:g
oooooo
gle yes!
这样看似乎与
ooo*
的字符没有什么差异啊?因为第
19
行有多个
o
依旧也出现了!
好,那么换个
搜寻的字符串,假设我们要找出
g
后面½
2
到
5
个
o
,然后再½一个
g
的字符串,他会是这样:
[dmtsai@study ~]$
grep
-
n 'go
\
{2,5
\
}g' regular_express.txt
18:
goog
le is the best tools for search
keyword.
嗯!很好!第
19
行终于没有被取用了
(
因为
19
行有
6
个
o
啊!
)
。
那么,如果我想要的是
2
个
o
以上的
goooo....g
呢?除了可以是
gooo*g
,也可以是:
[dmtsai@study ~]$
grep
-
n 'go
\
{2,
\
}g' regular_express.txt
18:
goog
le is the best tools for search keyword.
19:
goooooog
le yes!