如何为vmList与flavorList关联查询结果追加对应虚拟机ID
解决方案
你原有命令仅提取了flavor UUID参数,丢失了和虚拟机名称的对应关联,调整提取逻辑同步输出虚拟机名称和对应flavor UUID即可实现需求,以下是两种常用实现:
方案1:虚拟机名称单独放在匹配结果上方
grep 'flavor' /tmp/vmList | awk -F '[|()]' '{gsub(/[[:space:]]/,"",$1); print $1, $4}' | while read vm_name flavor_id; do echo "虚拟机ID: ${vm_name}" grep "${flavor_id}" /tmp/flavorList done
运行效果示例:
虚拟机ID: cf0012vm001 | 89ba4c986a28447aa27de65bca986db1 | nd.c8r16d50e60 | 16384 | 50 | 60 | | 8 | | N/A | 虚拟机ID: cf0012vm002 | 89ba4c986a28447aa27de65bca986db1 | nd.c8r16d50e60 | 16384 | 50 | 60 | | 8 | | N/A |
方案2:虚拟机名称直接拼接在匹配行首
grep 'flavor' /tmp/vmList | awk -F '[|()]' '{gsub(/[[:space:]]/,"",$1); print $1, $4}' | while read vm_name flavor_id; do grep "${flavor_id}" /tmp/flavorList | sed "s/^/| ${vm_name} /" done
运行效果示例:
| cf0012vm001 | 89ba4c986a28447aa27de65bca986db1 | nd.c8r16d50e60 | 16384 | 50 | 60 | | 8 | | N/A | | cf0012vm002 | 89ba4c986a28447aa27de65bca986db1 | nd.c8r16d50e60 | 16384 | 50 | 60 | | 8 | | N/A |
内容的提问来源于stack exchange,提问作者Bjoern
相关产品推荐
相关产品推荐

