从文件中,我使用以下cmd检索最后一行;
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
我试图获取字符串后us-east-1:
,us-west-1:
与us-west-2
使用以下的grep命令:
echo | tail -n 1 build.log | egrep -m1 -oe 'us-east-1: ami-.{8}' | egrep -m1 -oe 'ami-.{8}'
对于每种情况,我都会将此cmd运行3次。有一个更好的方法吗?
如果区域显示的顺序是固定的,则只需执行以下操作:
$ echo | tail -n 1 build.log | egrep -o 'ami-.{8}'
ami-63237174
ami-21236841
ami-27872347
如果要提取区域名称并且有GNU grep
,请尝试:
$ echo | tail -n 1 build.log | grep -Po 'us-[^:]+(?=: ami-.{8})'
us-east-1
us-west-1
us-west-2
为了得到这两个区域的名称和相关的值:
$ 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句