我确实有如下所示的输出。我的计划是获取第一列并执行一个大于 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