首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式匹配特定模式

正则表达式匹配特定模式
EN

Stack Overflow用户
提问于 2014-07-31 15:53:47
回答 5查看 80关注 0票数 1

我有过

代码语言:javascript
复制
[root@centos64 ~]# cat /tmp/out
[
  "i-b7a82af5",
  "i-9d78f4df",
  "i-92ea58d0",
  "i-fa4acab8"
]

我想用管道(虽然sed或grep )来匹配格式"x-xxxxxxxx“,即a-z 0-9的混合,总是以1-8个字符长度,而省略其他所有内容。

代码语言:javascript
复制
[root@centos64 ~]# cat /tmp/out| sed s/x-xxxxxxxx/
i-b7a82af5
i-9d78f4df
i-92ea58d0
i-fa4acab8

我知道这是基本的,但我只能找到文本替代的例子。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-07-31 15:57:00

通过GNU,

代码语言:javascript
复制
$ sed -nr 's/.*([a-z0-9]-[a-z0-9]{8}).*/\1/p' file
i-b7a82af5
i-9d78f4df
i-92ea58d0
i-fa4acab8
票数 0
EN

Stack Overflow用户

发布于 2014-07-31 15:58:49

代码语言:javascript
复制
grep -Eo '[a-z0-9]-[a-z0-9]{8}' file

-E选项使它能够识别扩展正则表达式,因此它可以使用{8}来匹配8次重复。

-o选项使它只打印行中与regexp匹配的部分。

票数 1
EN

Stack Overflow用户

发布于 2014-07-31 21:07:40

为什么不把引号之间的任何内容打印出来:

代码语言:javascript
复制
$ sed -n 's/[^"]*"\([^"]*\).*/\1/p' file
i-b7a82af5
i-9d78f4df
i-92ea58d0
i-fa4acab8

$ awk -F\" 'NF>1{print $2}' file                     
i-b7a82af5
i-9d78f4df
i-92ea58d0
i-fa4acab8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25063564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档