Actualizar

Actualizar
Oct 24 10:18:43 reliant3 sshd[67299]: Accepted password for root from 10.51.21.57 port 60097 ssh2

Estoy buscando la palabra contraseña. Una vez que lo encuentre, quiero buscar cualquier cosa asociada con el sshd[67299]número e imprimirlo.

Respuesta1

$ 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

(descartar todo, menos lo que está entre paréntesis).

Respuesta2

Esto debería funcionar para ti

grep password my_log.txt | sed 's/.*sshd\[\(.*\)\].*/\1/'

grep password my_log.txtobtiene todas las líneas con contraseña.

sed 's/.*sshd\[\(.*\)\].*/\1/'encuentra el []después sshdy obtiene el PID dentro de él.

No especificó esto en su pregunta, pero también puede canalizarlo para sort -ufiltrar duplicados.

Actualizar

Aunque en mi opinión es menos legible, también puedes hacerlo todo en una sola sedlínea.

sed -e '/password/!d;s/.*sshd\[\(.*\)\].*/\1/' my_log.txt

información relacionada