이제 나는 이것을 가지고 있습니다 :
while read p ; do
if ("$p | awk 'print $5'") == "sshd" && ("$p | awk 'print $6'") == "Connection";do
echo("$p")
done
done < /log.txt
내가 감지하려는 텍스트는 "[" 앞의 "sshd"이고 문자열 ":" 뒤의 "Connection"입니다.
로그 줄은 다음과 같습니다.
Sep 21 05:45:55 MY_MACHINE sshd[16251]: Connection from 76.127.218.159 port 41950
답변1
이 작업은 한 번의 작업으로 간단하게 수행할 수 있습니다.awk
주문하다:
awk '$5 ~ /^sshd/ && $6 == "Connection"' log.txt
답변2
다음을 사용할 수 있습니다 awk
.
awk '$5 ~ /^sshd\[\[0-9]+\]:$/ && $6 ~ /^Connection$/{print}' /log.txt