作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要在 Python 中的 subprocess.Popen 中运行一个 shell 命令。
命令是:$ virsh dumpxml server1 | grep '源文件' | awk -F\' '{print $2}'
输出是:/vms/onion.qcow2
我在使用上述命令时遇到了两个挑战:
1) 该命令在一个循环内,在您看到“server1”的地方,它是一个具有服务器名称的变量。
2) Python 报错 KeyError: 'print $2'
这是我目前所拥有的:
proc = subprocess.Popen(["virsh dumpxml {0} | grep 'source file' | awk -F\' '{print $2}'".format(vm)], stdout=subprocess.PIPE, shell=True)
stdout = proc.communicate()[0]
提前致谢。
最佳答案
虽然可以直接从 python 中使用 libvirt,但您的问题是 {
是格式字符串,并且在您的 awk
中包围了 print $2
脚本也是如此,所以你必须像
proc = subprocess.Popen(["virsh dumpxml {0} | grep 'source file' | awk -F\\' '{{print $2}}'".format(vm)], stdout=subprocess.PIPE, shell=True)
stdout = proc.communicate()[0]
关于python - 如何在 Python 中的 subprocess.Popen 中运行 awk -F\' ' {print $2}'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31900380/
我是一名优秀的程序员,十分优秀!