アップデート

アップデート
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

関連情報