我有这个命令打印出正在运行的虚拟机的所有信息。我真正需要的只是vm运行的目录。
这是我到目前为止所得到的。
VBoxManage list runningvms | grep vip-quickstart | awk -F ' ' '{print $1}' | xargs VBoxManage showvminfo | sed '/\'srv\', Host path: (.*)\'$/p'
这是输出
Name: 'srv', Host path: '/Users/me/MyProjects/project/vip-quickstart' (machine mapping), writable
Name: 'srv_www_wp-content_themes_vip', Host path: '/Users/me/MyProjects/project/theme' (machine mapping), writable
Name: 'project', Host path: '/Users/me/MyProjects/project/' (machine mapping), writable
Name: 'tmp_vagrant-puppet_manifests-846018e2aa141a5eb79a64b4015fc5f3', Host path: '/Users/me/MyProjects/project/vip-quickstart/puppet/manifests' (machine mapping), writable
Name: 'tmp_vagrant-puppet_modules-c332b5484a483ddd4cb97b359aa0eb4f', Host path: '/Users/me/MyProjects/project/vip-quickstart/puppet/modules' (machine mapping), writable
但我想要的只是来自这一行的/Users/me/MyProjects/project/vip-quickstart
Name: 'srv', Host path: '/Users/me/MyProjects/project/vip-quickstart' (machine mapping), writable
答案 0 :(得分:1)
将您的上一个sed
更改为:
sed -n "/'srv', Host path: /p"
-n
将禁止除了与此模式匹配的所有其他行。
编辑:要仅打印匹配的目录路径,请使用:
sed -nr "s/.*'srv', Host path: '([^']+)'.*/\1/p"