linux-mwok:~/shell> cat date.txt
yrend.AS
mount
soa.PP
qp.RR
ST.CPP
sT.cpp
我键入如下命令 grep '^[a-z]\{1,6\}\.[A-Z]\{1,2\}' date.txt
目的是匹配文件中 以1-6个小写字母开头, .之后是1-2个大写字母 这样的字符串。
我的预期结果应该是匹配到: yrend.AS soa.PP qp.RR 这几个字符串,
可实际匹配结果是:yrend.AS soa.PP qp.RR ST.CPPP sT.cpp
请大家帮忙看看我哪里写错了?
8 个解决方案
#1
奇怪
我用grep 2.9得到非预期的结果
而用grep 2.5.4得到预期的结果
我用grep 2.9得到非预期的结果
而用grep 2.5.4得到预期的结果
#2
使用正则表达式时注意:对未做限定的其它后面的子串,也视为匹配的内容
#3
1楼的意思grep '^[a-z]\{1,6\}\.[A-Z]\{1,2\}' date.txt 这个名令在不同的环境下结果不一样吗?
2楼的意思我似懂非懂,请帮忙看一下这个问题如何修改,错在哪里,谢谢!!
2楼的意思我似懂非懂,请帮忙看一下这个问题如何修改,错在哪里,谢谢!!
#4
晕死,你最后的一个限制条件只要求匹配1次或2次的吗,后面的你又没有要求,
ST.CPPP sT.cpp当然符合你的匹配要求,
ST.CPPP sT.cpp当然符合你的匹配要求,
#5
我要求以1-6个小写字母开头,为什么ST.CPP被匹配出来,他不是以大写开头的吗,我刚学shell脚本,有些愚钝,请多指教,不胜感激!
#6
要不把正确的匹配语句写一下贴出来,我研究研究,谢谢^_^
#7
^[a-z]{1,6}.[A-Z]{1,2}[\n]
#8
问题解决了 '^[a-z]\{1,6\}\.[A-Z]\{1,2\}$' 少了个$, 谢谢大家!
#1
奇怪
我用grep 2.9得到非预期的结果
而用grep 2.5.4得到预期的结果
我用grep 2.9得到非预期的结果
而用grep 2.5.4得到预期的结果
#2
使用正则表达式时注意:对未做限定的其它后面的子串,也视为匹配的内容
#3
1楼的意思grep '^[a-z]\{1,6\}\.[A-Z]\{1,2\}' date.txt 这个名令在不同的环境下结果不一样吗?
2楼的意思我似懂非懂,请帮忙看一下这个问题如何修改,错在哪里,谢谢!!
2楼的意思我似懂非懂,请帮忙看一下这个问题如何修改,错在哪里,谢谢!!
#4
晕死,你最后的一个限制条件只要求匹配1次或2次的吗,后面的你又没有要求,
ST.CPPP sT.cpp当然符合你的匹配要求,
ST.CPPP sT.cpp当然符合你的匹配要求,
#5
我要求以1-6个小写字母开头,为什么ST.CPP被匹配出来,他不是以大写开头的吗,我刚学shell脚本,有些愚钝,请多指教,不胜感激!
#6
要不把正确的匹配语句写一下贴出来,我研究研究,谢谢^_^
#7
^[a-z]{1,6}.[A-Z]{1,2}[\n]
#8
问题解决了 '^[a-z]\{1,6\}\.[A-Z]\{1,2\}$' 少了个$, 谢谢大家!