vim-cmd vmsvc/getallvms
打印这样的:如何删除空行而不使用tr?
id virtual machine name
11 VirtualMachine1
15 Virtual Machine 1
6 Virtu al Machin e 1
9 Virtual Machine one
21 VirtualMa chineone
我得到使用下面的ID:
vm_ids=$(vim-cmd vmsvc/getallvms | awk 'NR>1 {print $1}' | egrep "[0-9]+")
而接下来我通过他们想要循环和执行对每个人,所以我做这个命令:
i=2
for id in $vm_ids
do
vm_name=$(vim-cmd vmsvc/getallvms | awk -v i=$i -F "[[:space:]]{2,}+" 'NR==i {print $2}' | egrep "$[[:alnum:]]")
echo "Doing something to ID: $id for machine: $vm_name"
$((i++))
done
我的脚本正在返回null
值whe它到达那些空行。
我这样做的虚拟机名称只是为了演示名称可以返回的各种方式。由于ESXi没有安装tr
,我如何从输出中删除这些行,或者有更好的方法来完成此操作?
是有这样做的更好的方法。查看你昨天得到的答案和评论。 –