У меня есть команда, которая выглядит так:
ps v -p 2585 | awk '{if ($9 != "%MEM") {print $9}}'
Теперь это отлично работает в bash, оно просто занимает часть памяти любого pid, который вы ему даете. Однако сейчас я пытаюсь реализовать его на python, но у меня есть некоторые проблемы. Вот что у меня есть в питоне
cmd1 = ['ps', 'v', '-p', pid]
cmd2 = ['awk', '\'{if ($9 != "%MEM") {print $9}}\'']
Теперь их запускать...
runcmd1 = subprocess.Popen(cmd1, stdout=subprocess.PIPE)
runcmd2 = subprocess.Popen(cmd2, stdin=runcmd1.stdout, stdout=subprocess.PIPE)
Я получаю эту ошибку:
awk: '{if (\$9 != "%MEM") {print \$9}}'
awk: ^ invalid char ''' in expression
Я использовал это, чтобы распечатать, как команда выглядела вместе... sys.stdout.write(' '.join(cmd1)+' '+'|'+' '+' '.join(cmd2)+'\n ')
И это дало:
ps v -p 1073 | awk '{if ($9 != "%MEM") {print $9}}'
Я не вижу разницы между этим и реальной командой bash, которая работает. Кто-нибудь может помочь?