
Oct 24 10:18:43 reliant3 sshd[67299]: Accepted password for root from 10.51.21.57 port 60097 ssh2
Ich suche nach dem Wort Passwort. Sobald ich es gefunden habe, möchte ich alles finden, was mit der sshd[67299]
Nummer verknüpft ist, und es ausdrucken.
Antwort1
$ 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
(alles verwerfen, außer was in den Klammern steht).
Antwort2
Das sollte für Sie funktionieren
grep password my_log.txt | sed 's/.*sshd\[\(.*\)\].*/\1/'
grep password my_log.txt
Ruft alle Zeilen ab, die ein Passwort enthalten.
sed 's/.*sshd\[\(.*\)\].*/\1/'
sucht nach dem []
's danach sshd
und ruft die PID darin ab.
Sie haben dies in Ihrer Frage nicht angegeben, aber Sie könnten dies auch weiterleiten, um sort -u
Duplikate herauszufiltern.
Aktualisieren
Obwohl es meiner Meinung nach weniger lesbar ist, könnten Sie auch alles in einer Zeile machen sed
.
sed -e '/password/!d;s/.*sshd\[\(.*\)\].*/\1/' my_log.txt