+ -
当前位置:首页 → 问答吧 → grep如何匹配不分大小写的变量?

grep如何匹配不分大小写的变量?

时间:2011-07-08

来源:互联网

设定三个变量
sh-3.1$ NAME=RNC17
sh-3.1$ LINE1=[RNC17]
sh-3.1$ LINE2=[rnc17]

写了个grep语句,但发现无论是LINE1还是LINE2都能匹配RNC17:
sh-3.1$ grep -e \[$NAME\w+\] <<< "$LINE1"
[RNC17]
sh-3.1$ grep -e \[$NAME\w+\] <<< "$LINE2"
[rnc17]


感觉有点奇怪,是我哪里写错了?

其实,我确实是想用$NAME既能匹配RNC17也能匹配rnc17,但实际上再定义一个变量LINE3,明明不匹配却还是匹配上了。
sh-3.1$ LINE3=[RNC12345]
sh-3.1$ grep -e \[$NAME\w+\] <<< "$LINE3"
[RNC12345]

给位高手看看,到底哪里写错了?

作者: icetown   发布时间: 2011-07-08



QUOTE:
设定三个变量
sh-3.1$ NAME=RNC17
sh-3.1$ LINE1=[RNC17]
sh-3.1$ LINE2=[rnc17]

写了个grep语句,但 ...
icetown 发表于 2011-07-08 17:22



-i

作者: jason680   发布时间: 2011-07-08

本帖最后由 icetown 于 2011-07-08 17:36 编辑

感谢楼上的,-i确实是忽略大小写的选项,但还是有问题。
匹配的很乱,LINE1、LINE2、LINE3都可以匹配,这就不对了。

sh-3.1$ grep -i \[$NAME\w+\] <<< "$LINE3"
[RNC12345]
sh-3.1$ grep -i \[$NAME\w+\] <<< "$LINE2"
[rnc17]
sh-3.1$ grep -i \[$NAME\w+\] <<< "$LINE1"
[RNC17]

继续求解!!!

作者: icetown   发布时间: 2011-07-08



QUOTE:
感谢楼上的,-i确实是忽略大小写的选项,但还是有问题。
匹配的很乱,LINE1、LINE2、LINE3都可以匹配,这就 ...
icetown 发表于 2011-07-08 17:34




    你要"说"什么...

作者: jason680   发布时间: 2011-07-08

本帖最后由 icetown 于 2011-07-08 18:07 编辑


QUOTE:
你要"说"什么...
jason680 发表于 2011-07-08 17:46




NAME=RNC17
只想用grep匹配RNC17
但实际结果是既能匹配RNC17又能匹配RNC12345,但RNC12345明显不匹配啊。

作者: icetown   发布时间: 2011-07-08