VOLUMES eu-west-1b 90 30 snap-54d6abac in-use vol-a60879a4 gp2
VOLUMES eu-west-1b 150 50 snap-8218247a in-use vol-6ee29c6c gp2
VOLUMES eu-west-1b 50 snap-8518247d in-use vol-76e29c74 standard
VOLUMES eu-west-1b 300 100 snap-bcef1047 in-use vol-d22167d0 gp2
VOLUMES eu-west-1b 30 snap-1e3ec2e6 in-use vol-98efba9a standard
VOLUMES eu-west-1b 24 8 snap-1b3ec2e3 in-use vol-99efba9b gp2
VOLUMES eu-west-1b False 24 8 snap-1b3ec2e3 available vol-4691b244 gp2
我有以下脚本返回上面的结果 / usr / bin / aws ec2 describe-volumes --output text | / bin / grep“VOLUME”
我试图仅提取列(8) - 即以vol -
开头的单词/usr/bin/aws ec2 describe-volumes --output text | /bin/grep "VOLUME" | /usr/bin/awk '{ print $6 }'
我做了以下更改,但这会返回
in-use
in-use
vol-76e29c74
in-use
vol-98efba9a
in-use
in-use
vol-6591b267
vol-01c6e403
in-use
in-use
vol-0e416c0c
vol-d1f28684
vol-f7d5a2a2
vol-84f4eca8
available
因为某些行的第5列为空白 - 因此结果看起来不正确。
有人可以指出如何只提取以'vol - '
开头的字符串我不想使用perl - 因为我不确定是否安装了库,我需要使用egrep或awk。
问候 d
答案 0 :(得分:3)
向另一个方向看怎么样?
..... awk '{print $(NF-1)}'
答案 1 :(得分:0)
grep的:
grep -oE '\bvol-\S+'
对于上面的例子打印
vol-a60879a4
vol-6ee29c6c
vol-76e29c74
vol-d22167d0
vol-98efba9a
vol-99efba9b
vol-4691b244
一起greps
aws ... | grep -oP '^VOLUMES.*\K\bvol-\S+'
打印
vol-a60879a4
....
etc..