免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5367 | 回复: 7
打印 上一主题 下一主题

grep精确匹配单词:包含“-”和“.”无法精确匹配(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-06 13:54 |只看该作者 |倒序浏览
例如想精确匹配abc,但是文本中包含abc   abc.1   abc.2   abc-3
grep -w 'abc' file
grep 'abc\>' file
grep '\<abc\>' file
这几种方式同时输出了包含abc   abc.1   abc.2   abc-3的行

请问各位如何精确匹配abc从而只输出含abc的行呢?

解决:grep '[[:space:]]root[[:space:]]'

[ 本帖最后由 antita 于 2007-12-6 16:39 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-12-06 14:04 |只看该作者
grep '^abc$'
也许每行后有空格造成的吧

论坛徽章:
0
3 [报告]
发表于 2007-12-06 14:08 |只看该作者
词是由 [a-zA-Z_] 组成的。所以上面的都能出来。找点别的特征来匹配吧 比如有空格或者结尾啥的

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2007-12-06 14:09 |只看该作者
既然如此,那么grep -E '^abc$|[:space:]abc[:space:]|[:space:]abc$'

论坛徽章:
0
5 [报告]
发表于 2007-12-06 14:23 |只看该作者
谢谢各位,不过还是无法精确匹配abc,似乎grep认为凡是单词中含有.和-的都被分割为两个单词,和分隔符的作用一样

论坛徽章:
0
6 [报告]
发表于 2007-12-06 15:30 |只看该作者
grep对与“.”、“-”、“_”就真的分辨不出来了吗?
正则表达式怎样描述精确匹配的呢?
例如如下文本
line0 : start0 abc  bcd eof

line1 : start1 1.abc.1  bcd eof

line2 : start2 2_abc_2 bcd eof

line3 : start3 3-abc-3 bcd eof

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
7 [报告]
发表于 2007-12-06 15:37 |只看该作者
4楼不是已经给你答案了么。
有点笔误
grep -E '^abc[[:space:]]|[[:space:]]abc[[:space:]]|[[:space:]]abc$' urfile

论坛徽章:
0
8 [报告]
发表于 2007-12-06 15:46 |只看该作者
谢谢4楼、7楼的兄弟
明白了

[[:space:]]是POSIX字符类全部空白字符的意思

在linux下的grep除fgrep外,都支持POSIX的字符类。
顺便贴下POSIX的相关含义:

[:alnum:]
文字数字字符

[:alpha:]
文字字符

[:digit:]
数字字符

[:graph:]
非空字符(非空格、控制字符)

[:lower:]
小写字符

[:cntrl:]
控制字符

[:print:]
非空字符(包括空格)

[:punct:]
标点符号

[:space:]
所有空白字符(新行,空格,制表符)

[:upper:]
大写字符

[digit:]
十六进制数字(0-9,a-f,A-F)

再次感谢4楼7楼的朋友
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP