Как я могу форматировать вывод команды оболочки

Я совмещаю команду top и pidof :

 top -p $(pidof <process_name>) 

Если pidof <process_name> возвращает одну команду top id. Но если pidof <process_name> более одной команды top не работает.

pidof возвращает идентификаторы с одним пробелом между ними: 123 124 125

Если я получу эти идентификаторы с запятой, как 123, 124, 125 top команда будет работать. Как изменить выходной формат pidof ?

Я знаю, что awk использовался для форматирования текстовых данных. Но я не могу найти, как я могу использовать awk для результата команды оболочки.

3 Solutions collect form web for “Как я могу форматировать вывод команды оболочки”

Вы можете попробовать это:

 top -p "$(pidof <process_name> | awk 'OFS="," { $1 = $1; print; }')" 

Использование bash :

 top -p "$(pname="$(pidof <process_name>)"; echo "${pname// /,}")" 

Используя tr :

 top -p "$(pidof <process_name> | tr ' ' ',')" 

Использование sed :

 top -p "$(pidof <process_name> | sed 's/ /,/g')" 

Попробуйте это с помощью awk :

 top -p $(pidof <process_name>|awk '{gsub(/ /, ","); print }') 
Linux и Unix - лучшая ОС в мире.