python fabric run awk command return a KeyError: 'print $1'
python fabric run awk command return a KeyError: 'print $1'
我正在使用 python fabric 运行 命令,它不起作用并给我一个 KeyError:
run('docker ps -a | grep {} | awk "{print }"'.format(container_name))
KeyError: 'print '
但是如果我用 %s 替换 .format,它可以工作,这怎么可能:
run("docker ps -a | grep %s | awk '{print }'" % container_name)
我的python版本2.7.8,".format()"肯定可以,好像跟"awk"命令有关
Format 正在尝试替代 {print }
,当然没有这样的密钥。
您可以通过用 {} 围绕它们来转义 {},因此:
run('docker ps -a | grep {} | awk "{{print }}"'.format(container_name))
应该工作 - 作为测试:
iPython3.0:
In [1]: container_name = 'fred'
In [2]: 'docker ps -a | grep {} | awk "{{print }}"'.format(container_name)
Out[2]: 'docker ps -a | grep fred | awk "{print }"'
Python:
Python 2.7.8 (default, Oct 20 2014, 15:05:19)
[GCC 4.9.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> container_name = 'fred'
>>> 'docker ps -a | grep {} | awk "{{print }}"'.format(container_name)
'docker ps -a | grep fred | awk "{print }"'
>>>
我正在使用 python fabric 运行 命令,它不起作用并给我一个 KeyError:
run('docker ps -a | grep {} | awk "{print }"'.format(container_name))
KeyError: 'print '
但是如果我用 %s 替换 .format,它可以工作,这怎么可能:
run("docker ps -a | grep %s | awk '{print }'" % container_name)
我的python版本2.7.8,".format()"肯定可以,好像跟"awk"命令有关
Format 正在尝试替代 {print }
,当然没有这样的密钥。
您可以通过用 {} 围绕它们来转义 {},因此:
run('docker ps -a | grep {} | awk "{{print }}"'.format(container_name))
应该工作 - 作为测试: iPython3.0:
In [1]: container_name = 'fred'
In [2]: 'docker ps -a | grep {} | awk "{{print }}"'.format(container_name)
Out[2]: 'docker ps -a | grep fred | awk "{print }"'
Python:
Python 2.7.8 (default, Oct 20 2014, 15:05:19)
[GCC 4.9.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> container_name = 'fred'
>>> 'docker ps -a | grep {} | awk "{{print }}"'.format(container_name)
'docker ps -a | grep fred | awk "{print }"'
>>>