【发布时间】:2014-03-01 15:05:50
【问题描述】:
如何使用 subprocess 模块运行此代码?
commands.getoutput('sudo blkid | grep 'uuid' | cut -d " " -f 1 | tr -d ":"')
我已经试过了,但它根本不起作用
out_1 = subprocess.Popen(('sudo', 'blkid'), stdout=subprocess.PIPE)
out_2 = subprocess.Popen(('grep', 'uuid'), stdin=out_1.stdout, stdout=subprocess.PIPE)
out_3 = subprocess.Popen(('cut', '-d', '" "', '-f', '1'), stdin=out_2.stdout, stdout=subprocess.PIPE)
main_command = subprocess.check_output(('tr', '-d', '":"'), stdin=out_3.stdout)
main_command
错误:剪切:分隔符必须是单个字符
【问题讨论】:
-
它有什么作用 - 你有错误信息要发布
-
错误:剪切:分隔符必须是单个字符
-
你知道
grep 'uuid' | cut -d " " -f 1 | tr -d ":"可以用一个命令代替吗:awk '/uuid/{print gsub(":", "", $1)}' -
我试过了,但输出完全不同:虽然 grep 显示 /dev/sda1,但 awk 只执行 1
标签: python command subprocess