Você pode analisar a saída com sed
, conforme sugerido por @Sobrique ou com tr
:
pidof avconv | tr ' ' '\n'
Outra abordagem seria usar pgrep
:
$ pgrep avconv16616
16283
16279
16198
16175
16035
15073
14049
Eu posso encontrar o pid das instâncias do meu programa emitindo comandos como este:
pidof avconv
Que está me dando resultados
16616 16283 16279 16198 16175 16035 15073 14049 4922
Mas como posso produzir o mesmo resultado linha por linha, como:
16616
16283
16279
16198
16175
16035
15073
14049
4922
Você pode simplesmente começar assim ... em primeiro lugar ...
ps -C avconv -o pid=
Você sempre pode usar sed
para inserir alguns feeds de linha
pidof avconv | sed 's/ /\n/g'
embora talvez uma questão maior seja - por que você precisa deles em linhas separadas? Pode ser que haja uma resposta mais apropriada.
Existem várias maneiras de fazer isso, dependendo da sua necessidade.
Se você está fazendo isso em um script de shell
for line in $(pidof avconv)
do
echo $line
done
Se você estiver procurando por um oneliner
pidof avconv |perl -pne 's|\s+|\n|g'
Tente também
ps ax | grep "program name, or part of it"
Você receberá a resposta certa, mas também uma entrada sem sentido como:
11424 pts/3 S+ 0:00 grep --color=auto something
Usando awk
para mostrar apenas os PIDs:
ps ax | grep "program name, or part of it"| awk '{print $1}'
Isso lhe dará os PIDs, mas também o PID da entrada de significados. Esta entrada é geralmente a última, então apenas deixe de fora.