首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从跟随某个字符的行中获取字符串

从跟随某个字符的行中获取字符串
EN

Stack Overflow用户
提问于 2016-10-22 03:00:20
回答 1查看 36关注 0票数 0

从文件中,我使用以下cmd检索最后一行;

代码语言:javascript
复制
tail -n 1 build.log

输出如下所示:

1477101542,,ui,say,--> amazon-ebs: AMIs were created:\n\nus-east-1: ami-63237174\nus-west-1: ami-21236841\nus-west-2: ami-27872347

我试图使用以下grep命令在us-east-1:us-west-1:us-west-2之后获取字符串:

代码语言:javascript
复制
echo | tail -n 1 build.log | egrep -m1 -oe 'us-east-1: ami-.{8}' |  egrep -m1 -oe 'ami-.{8}'

我为每个条件运行了三次这个cmd。有更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-22 03:08:26

如果区域出现的顺序是固定的,则只需执行以下操作:

代码语言:javascript
复制
$ echo | tail -n 1 build.log | egrep -o  'ami-.{8}'
ami-63237174
ami-21236841
ami-27872347

如果您想提取区域名称,并且您有GNU grep,请尝试:

代码语言:javascript
复制
$ echo | tail -n 1 build.log | grep -Po 'us-[^:]+(?=: ami-.{8})'
us-east-1
us-west-1
us-west-2

若要同时获取区域名称和相关值,请执行以下操作:

代码语言:javascript
复制
$ echo | tail -n 1 build.log | egrep -o 'us-[^:]+: ami-.{8}'
us-east-1: ami-63237174
us-west-1: ami-21236841
us-west-2: ami-27872347
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40187893

复制
相关文章

相似问题

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