2017-10-14 168 views
0

抓住比如我想找到这样的:grep的问题:为什么是grep的-i不包含特殊字符

gxxcc/issdd/jaabb/krrss/lxxnn 

在此(全部为大写字母)

AXXRR/BVVTTS/CRRTTDD/DEETTFF/EAABBRR/FRSSTT/GXXCC/ISSDD/JAABB_KRRSS_LXXNN/LL 

我想这

grep -i 'GXXCC/ISSDD/JAABB.KRRSS.LXXNN' filename.txt 
grep -i 'GXXCC*ISSDD*JAABB*KRRSS*LXXNN' filename.txt 

但是,无论这些工作。任何解决方案和解释?

+0

查看您的文本回声A/B/C/D/E/F/G/I/J_K_L/LL | grep -i'G/I/J.K.L''工作得很好。看起来你简化了示例 – myaut

+0

我添加了一些字符串,看看这是否有助于 – user5987994

+0

无法重现,工作正常 – RomanPerekhrest

回答

0

这一点,从你的榜样,做工精细,突出显示文本的一部分:

echo AXXRR/BVVTTS/CRRTTDD/DEETTFF/EAABBRR/FRSSTT/GXXCC/ISSDD/JAABB_KRRSS_LXXNN/LL | 
    egrep -i --color 'gxxcc/issdd/jaabb.krrss.lxxnn' 

避免模式,如D*JAABB*K。这将匹配像“JAABBBBBBK”或“DDDDDJAABK”,而不是斜线或下划线的文本。

.点匹配一个字符。是您_下划线也许有些疯狂的UTF8的多字节序列,而不是ASCII码95?有一种方法可以告诉Kleene星星:egrep -i --color 'jaabb.*krrss.*lxxnn'。另一种方法是使用hexdump -C

+0

是的,这是一个疯狂的多位。感谢您的意见 – user5987994