아래에 표시된 출력이 있습니다. 내 계획은 첫 번째 열을 가져오고 n보다 큰 값을 가진 if 문을 실행하여 IP 두 번째 열을 가져오고 연결을 끊는 것입니다.
cat file| egrep "invalid|password" | egrep -v "Accepted|preauth" | awk '{print $13}' |sort | uniq -c
6 61.177.172.35
4083 61.177.172.22
3 69.28.94.192
10 80.2.33.180
첫 번째 열을 추출하고 if 문을 실행할 수 있지만 값을 해당 IP에 어떻게 귀속시키는지 모르겠습니다.
답변1
이 시도:
#!/bin/bash
value=1 # to be defined
egrep "invalid|password" file |
egrep -v "Accepted|preauth" |
awk '{print $13}' |
sort |
uniq -c |
while read -r num ip; do
if ((num > value)); then
doSomethingWith "$ip"
fi
done