Como posso formatar a saída do comando shell

1

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.

    
por user4757345 29.04.2015 / 16:34

3 respostas

1

Você pode experimentar este:

top -p "$(pidof <process_name> | awk 'OFS="," { $1 = $1; print; }')"
    
por 29.04.2015 / 16:41
5

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')"
    
por 29.04.2015 / 16:42
2

Tente este usando awk :

top -p $(pidof <process_name>|awk '{gsub(/ /, ","); print }')
    
por 29.04.2015 / 16:49

Tags