grep中使用?的疑问

回复 收藏
有1.txt文件,里面有如下内容:
a:r?t:123456
123:xyz:abcdefg
aming:r?t:ssssss
lxy:r*t:ecccdsad
1.txt:100:shldhga'
11txt:666:233333

grep --color -n 'r\?t' 1.txt匹配到的内容如下:
1:a:r?t:123456
3:aming:r?t:ssssss
4:lxy:r*t:ecccdsad
5:1.txt:100:shldhga'
6:11txt:666:233333

而grep --color -n 'r?t' 1.txt匹配到的内容如下:
1:a:r?t:123456
3:aming:r?t:ssssss
(红色表示被匹配到的字符)

使用了脱义符号\,\?表示的却是正则表达式中?的含义。而使用?表达的却是本来含义,为什么?的设定是这样的?.和*要使用本来含义时都是要加脱义符号\的(\*和\.)
2016-07-26 16:58 举报
已邀请:
0

午夜DJ

赞同来自:

grep E或者egrep试试
0

maria

赞同来自:

因为你加了引号{:4_93:}

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: