
Oct 24 10:18:43 reliant3 sshd[67299]: Accepted password for root from 10.51.21.57 port 60097 ssh2
Estou procurando a palavra senha. Depois de encontrá-lo, quero encontrar qualquer coisa associada ao sshd[67299]
número e imprimi-lo.
Responder1
$ echo "Oct 24 10:18:43 reliant3 sshd[67299]: Accepted password for root from 10.51.21.57 port 60097 ss" | sed 's/.*\[\(.*\)\].*/\1/'
67299
(descarte tudo, par o que está entre colchetes).
Responder2
Isso deve funcionar para você
grep password my_log.txt | sed 's/.*sshd\[\(.*\)\].*/\1/'
grep password my_log.txt
obtém todas as linhas com senha.
sed 's/.*sshd\[\(.*\)\].*/\1/'
encontra o []
's after sshd
e obtém o PID dentro dele.
Você não especificou isso em sua pergunta, mas também pode canalizar isso para sort -u
filtrar duplicatas.
Atualizar
Embora menos legível na minha opinião, você também pode fazer tudo em uma sed
linha.
sed -e '/password/!d;s/.*sshd\[\(.*\)\].*/\1/' my_log.txt