修正する

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

パスワードという言葉を探しています。一度見つけたら、その番号に関連するものを見つけてsshd[67299]印刷したいと思います。

答え1

$ 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

(括弧内の内容はすべて廃棄します。)

答え2

これはあなたに役立ちます

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

grep password my_log.txtパスワードを含むすべての行を取得します。

sed 's/.*sshd\[\(.*\)\].*/\1/'[]後者を見つけて、sshdその中にPIDを取得します。

質問にこれを指定しませんでしたが、パイプを介してsort -u重複項目をフィルタリングすることもできます。

修正する

読みやすさが悪いようですが、1行ですべて実行できますsed

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

関連情報