Este é o comando que você precisa:
ps aux|grep -P "Rl.*a\.out"|grep -oP "\d+"|head -n 1 | xargs lsof -p
A chave aqui é xargs
.
Comandos como grep
e awk
podem aceitar a entrada padrão ( STDIN) como um parâmetro ou argumento usando um pipe. No entanto, outros, como cp
, echo
e lsof
, desconsideram o fluxo de entrada padrão e dependem exclusivamente dos argumentos encontrados após o comando.
Usando o comando xargs
você pode construir e executar linhas de comando a partir da entrada padrão.