在Linux 2.6.6中将linux命令输出分配给变量

时间:2018-04-18 10:58:18

标签: linux shell python

我正在尝试将shell脚本移植到python。使用谷歌搜索的各种方法,但似乎都没有。

这是shell命令。

version=`awk '{print $5}' file_name | tr -d ")" `

这些是尝试过的方法。

version = subprocess.call(['awk','{print $5}','file_name','|','tr','-d'], shell=True)
version = os.system("`awk '{print $5}' file_name | tr -d ")" `", shell=True)
version = commands.getstatusoutput(" awk '{print $5}' file_name | tr -d ")"  ")

以上两种命令均无效。有人可以帮帮我。

1 个答案:

答案 0 :(得分:2)

您的示例有各种引用错误。

最直接的解决方案是:

subprocess.call('awk \'{print $5}\' file_name | tr -d ")"', shell=True)

但不推荐这样做,因为file_name可以包含空格(你可以通过shell = False和正确使用参数列表来解决这个问题,但是它变得不可读了。)

我建议str.replace(')', '') tr -dx.split()[4] for x in open('file_name')而不是awk,以获得纯粹的python版本。