Você pode experimentar este:
top -p "$(pidof <process_name> | awk 'OFS="," { $1 = $1; print; }')"
Combino o comando top e pidof :
top -p $(pidof <process_name>)
Se o comando pidof <process_name> retornar um id top funcione. Mas se o comando pidof <process_name> mais de um ids top não funcionar.
pidof retorna ids com um espaço entre eles, como: 123 124 125
Se eu conseguir esses IDs com vírgula, como o comando 123, 124, 125 top funcionará. Como posso alterar o formato de saída de pidof ?
Eu sei que awk foi usado para formatar dados de texto. Mas eu não consigo encontrar como posso usar awk para o resultado do comando shell.
Usando bash :
top -p "$(pname="$(pidof <process_name>)"; echo "${pname// /,}")"
Usando tr :
top -p "$(pidof <process_name> | tr ' ' ',')"
Usando sed :
top -p "$(pidof <process_name> | sed 's/ /,/g')"
Tente este usando awk :
top -p $(pidof <process_name>|awk '{gsub(/ /, ","); print }')