Использовать pstree внутри команды awk
Я хочу бежать pstree
на набор пид, который я нахожу с помощью ps
ps -aux | grep ^username | awk '{pstree $2}'
К сожалению, вывод пуст, но если я запустлю pstree
Команда вручную с теми же пидами я получаю желаемый вывод. Что не так с awk
команда? Или как мне достичь желаемого результата другими способами?
3 ответа
Решение
Использование system
функционировать в awk так:
awk '{system("pstree " $2)}'
Вы можете сократить свою команду до:
ps -aux | awk ' /^username/ { system("pstree " $2) }'
Пытаться
ps -aux | grep ^username | awk '{print $2}' | xargs pstree
(Как и раньше, pstree - пустое значение переменной)
Это можно свести к
ps -aux | awk '/^username/{print $2}' | xargs pstree
IHTH
Использовать system
функция в awk
, Также вам не нужно grep
здесь тоже
ps -aux | awk '$1=="username"{system("pstree $2")}'