Como formatar a saída do ps -p
comando?
Para não me mostrar algo assim:
PID TTY TIME CMD
mas apenas PIDs.
Estou usando o Linux.
Como formatar a saída do ps -p
comando?
Para não me mostrar algo assim:
PID TTY TIME CMD
mas apenas PIDs.
Estou usando o Linux.
Respostas:
Use a -o
opção para selecionar quais colunas são exibidas. Se você colocar =
o nome da coluna, a linha do cabeçalho será suprimida.
ps -o pid= -p 1 23 456
ps -o pid= -o ppid= -o pgid= -o sid= -p 1 23 456
Use --no-headers
para ter a linha do cabeçalho omitida.
Saída original:
ps
PID TTY TIME CMD
27027 pts/0 00:00:00 bash
27071 pts/0 00:00:00 ps
Com --no-headers
:
ps --no-headers
27027 pts/0 00:00:00 bash
27072 pts/0 00:00:00 ps
Combinando com -p
:
ps -p 1 --no-headers
1 ? 00:00:33 systemd
A man
página para ps
documentar claramente isso:
man ps
[snip]
--no-headers
Print no header line at all. --no-heading is an alias for this option.
=
nome após a coluna na o
bandeira é uma maneira de plataforma cruzada para fazer isso. Por exemplo, ps -p ${pid} -o state=
mostrará o estado do processo para ${pid}
, sem o cabeçalho. (Que é o que as respostas Unidos aceitaram :))
Para obter uma lista apenas dos PIDs, use:
ps -eo pid
Consulte também a man ps
seção 'ESPECIFICADORES DE FORMATO PADRÃO' para obter as possíveis colunas.
Pessoalmente, gosto da maneira como o Solaris mostra as possíveis colunas a serem usadas no -o
argumento:
ps: option requires an argument -- o
usage: ps [ -aAdefHlcjLPyZ ] [ -o format ] [ -t termlist ]
[ -u userlist ] [ -U userlist ] [ -G grouplist ]
[ -p proclist ] [ -g pgrplist ] [ -s sidlist ] [ -z zonelist ] [-h lgrplist]
'format' is one or more of:
user ruser group rgroup uid ruid gid rgid pid ppid pgid sid taskid ctid
pri opri pcpu pmem vsz rss osz nice class time etime stime zone zoneid
f s c lwp nlwp psr tty addr wchan fname comm args projid project pset lgrp