更新

更新
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過濾掉重複項。

更新

雖然我認為可讀性較差,但您也可以在一行中完成所有操作sed

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

相關內容