LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 676|回复: 3

用 grep '[a-z]\{1,6\}\.[A-Z]\{1,2\}' filename.deposit 命令,正则表达式\{

[复制链接]
发表于 2008-6-12 10:55:51 | 显示全部楼层 |阅读模式
创建文件filename.deposit , 以下是文件内容:
# cat filename.deposit
yrend.AS
moutgf
soa.PP
qp.RR
bhukkhdjhjdh.LLL
HUhuhuuu.LLLL
12345.LLL
uuuuuuuu.LLL
uuuu.PPP

使用命令:

grep '[a-z]\{1,6\}\.[A-Z]\{1,2\}' filename.deposit

得到返回结果:

# grep '[a-z]\{1,6\}\.[A-Z]\{1,2\}' filename.deposit
yrend.AS
soa.PP
qp.RR
bhukkhdjhjdh.LLL
HUhuhuuu.LLLL
uuuuuuuu.LLL
uuuu.PPP

结果里面输出
bhukkhdjhjdh.LLL
HUhuhuuu.LLLL
uuuuuuuu.LLL
不符合正则表达式里面 文件名应该满足.前面1-6个小写字母, .之后是1-2个大写字母的要求。
请问grep '[a-z]\{1,6\}\.[A-Z]\{1,2\}' filename.deposit 这个命令用的对吗?
为什么得不到想要的结果?
怎么样用正则表达式实现想要的显示结果:文件名应该满足.前面1-6个小写字母, .之后是1-2个大写字母的要求?
谢谢!
发表于 2008-6-12 13:07:00 | 显示全部楼层
grep -E "^[a-z]{1,6}\.[A-Z]{1,2}$"  filename.deposit
回复 支持 反对

使用道具 举报

发表于 2008-6-12 13:24:15 | 显示全部楼层
Post by percy;1860947
grep -E "^[a-z]{1,6}\.[A-Z]{1,2}$"  filename.deposit

呵呵,窍门所在:

“bhukkhdjhjdh.LLL”中,“djhjdh.LL”匹配搜索;
“HUhuhuuu.LLLL”中,“huhuuu.LL”匹配搜索;
“uuuuuuuu.LLL”中,“uuuuuu.LL”匹配搜索;
“uuuu.PPP”中,“uuuu.PP”匹配搜索。

所以这些行都被显示出来了。grep尽心尽职,但是你的用法不对。grep搜索各行中是否存在匹配的字串,然后打印出这些行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-12 14:01:32 | 显示全部楼层
多谢 多谢 楼上两位!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表