免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1643 | 回复: 7

请大侠解惑:shell中[]的问题 [复制链接]

论坛徽章:
0
发表于 2010-06-06 01:25 |显示全部楼层
本帖最后由 fengjihu 于 2010-06-06 01:32 编辑

OS:CentOS5.4
请问:在[]中^是否是表示“非”的意思?如果不是,请详解,如果是,请看下面例子
1、
[root@CentOS5 ~]# grep '^[^48]' data.f
219   dec     2CC1999 CAD     23.00   PLV2C   68
216   sept    3ZL1998 USP     86.00   KVM9E   234
这条数据为什么没有匹配上?
47      Oct     3ZL1998 LPSX    43.00   KVM9D   512

2、我本意是要匹配不含48的项,为什么全都显示了出来?
[root@CentOS5 ~]# grep '[^48]' data.f
48      Dec     3BC1997 LPSX    68.00   LVX2A   138
483     Sept    5AP1996 USP     65.00   LVX2C   189
47      Oct     3ZL1998 LPSX    43.00   KVM9D   512
219     dec     2CC1999 CAD     23.00   PLV2C   68
484     nov     7PL1996 CAD     49.00   PLV2C   234
483     may     5PA1998 USP     37.00   KVM9D   644
216     sept    3ZL1998 USP     86.00   KVM9E   234

3、shell中,[48]是匹配48,还有所有包含4、8的行?

论坛徽章:
0
发表于 2010-06-06 13:20 |显示全部楼层
没人知道吗?

论坛徽章:
0
发表于 2010-06-06 13:53 |显示全部楼层
因为你的[] 用法不对..
老生常谈了.. [^48]匹配非4非8的字符

论坛徽章:
0
发表于 2010-06-06 17:21 |显示全部楼层
谢谢楼上,那请问,[^48]匹配非4非8的字符,那么第二个例子为什么会出现这样的结果?谢谢

论坛徽章:
0
发表于 2010-06-07 10:34 |显示全部楼层
回复 4# fengjihu


    [root@CentOS5 ~]# grep '[^48]' data.f

侬少加了一个^,应该是

  1. [root@CentOS5 ~]# grep '^[^48]' data.f
复制代码

论坛徽章:
0
发表于 2010-06-07 11:36 |显示全部楼层
[^48]是匹配4和8以外的数

第一个问题中开头是47必然匹配不了,因为开头是4啊,
你的第二个问题中在每一行中有非4,8的数,所以当然会全匹配了,

论坛徽章:
0
发表于 2010-06-07 17:42 |显示全部楼层
结贴,谢谢。

论坛徽章:
0
发表于 2010-06-07 22:48 |显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP