
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