具有两列输出的 if 语句

具有两列输出的 if 语句

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

相关内容