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