Comando Linux que lista os processos um por linha

0

Existe uma maneira de restringir a saída de, digamos ps aux | grep word , para que cada processo seja exibido em uma linha separada única ?

Eu preciso disso, porque minhas descrições de processos ocupam muitas linhas e não tenho boa visibilidade ao listá-las com o comando acima. Eu ficaria feliz em ver apenas a primeira linha de representação de cada processo.

    
por Mateva 20.12.2017 / 10:41

3 respostas

1

Na verdade, cada processo já é exibido em uma única linha, é por isso que grep mostra muita informação.

Se você estiver disposto a sacrificar a quantidade de detalhes que a coluna "COMMAND" de ps aux oferece, você pode cortar a saída como tal:

ps aux | awk '/word/ {print $1"\t"$2"\t"$3"\t"$4"\t"$9"\t"$11}'

O awk procura linhas contendo o padrão 'word' e imprime:

o USER, PID,% CPU,% MEM, START e primeira string (delimitada por espaço) da coluna COMMAND, todos separados por TAB ('\ t')

    
por 20.12.2017 / 12:12
1

Você pode achar o comando pstree útil. Ele lista todos os processos como um diagrama de árvore.

    
por 20.12.2017 / 10:51
1

Quando ps aux output é direcionado para um terminal, o comando limita a parte do comando à largura da tela.

Quando a saída é canalizada para um comando, o comportamento varia, mas geralmente a largura é ilimitada. Se você quiser limitar da mesma maneira, você pode usar esse comando:

ps aux --witdh ${COLUMNS:-80} | grep word

É claro que, se word não estiver nos caracteres exibidos, mas nos truncados, isso não acontecerá.

Aqui estão algumas alternativas:

ps aux | awk '/word/ {print substr($0,1,'${COLUMNS:-80}')}'

ps -up $(pgrep -f word|tr '\n' ','| sed 's/,$//') 
    
por 20.12.2017 / 12:45