LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1169|回复: 4

如何在shell组捕获得到字符串的一部分

[复制链接]
发表于 2009-6-8 13:21:57 | 显示全部楼层 |阅读模式
我想从一个字符串中提取一部分,使用了组捕获。但发现各种命令中,一般只有在“替换”中才能使用组捕获。比如sed,s/pattern/replacement/.  grep的组捕获似乎根本没用。请教哪个命令能直接获取组捕获的结果
发表于 2009-6-8 14:18:34 | 显示全部楼层
举个例子啊,把你要处理的文本贴一点上来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-10 13:33:23 | 显示全部楼层
比如a1XXX1a,a表示任意个数的非数字字符,要提取其中的XXX,其特点是被两个数字包围,整个串之间只有XXX两边有两个数字。怎么打印出XXX。如果其它编程语言,我可以用re.search("\d([^\d]*)\d", str),然后re.group(1)。在shell中怎么做呢
回复 支持 反对

使用道具 举报

发表于 2009-6-10 15:46:30 | 显示全部楼层
单纯用shell应该无法解决的吧,还是要用正则表达式。
回复 支持 反对

使用道具 举报

发表于 2009-6-16 12:52:49 | 显示全部楼层
  1. echo '12abc12' | grep -oE '[^[:digit:]]+'
复制代码
Would this work?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表