Как объединить вывод из awk и pipe в htop? - PullRequest
0 голосов
/ 23 мая 2018
$ ps -ef | grep python | awk -F' ' '{print $2}'
9825
4470
4619

$ htop -p 9825,4470,4619

На данный момент я должен сделать две отдельные команды, чтобы наблюдать за всеми процессами Python в htop.Есть ли способ, которым я могу передать все результаты из awk и передать их в htop?

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Если у вас есть pgrep (вероятно, у вас есть):

htop -p $(pgrep python | paste -sd,)
0 голосов
/ 23 мая 2018

Вы можете избежать grep и использовать только awk, используя что-то вроде:

ps -ef | awk '/[p]ython/{print $2}'

Тогда вы можете использовать:

htop -p $(ps -ef | awk -v ORS=, '/[p]ython/{print $2}')

Обратите внимание на [] вокруг p, это хороший прием, чтобы избежать печати самой второй команды:

 ps -ef | awk '/[p]ython/{print $2}'
     |         |
  cmd 1       cmd 2

она работает, потому что awk переведет регулярное выражение [p], чтобы сказать что-то вроде "сопоставить символы из [p] вв этом случае только p, за которым следует ython:

[p]ython != python
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...