
以下に示す出力があります。私の計画は、最初の列を取得し、nより大きい値を持つifステートメントを実行して、IPの2番目の列を取得して切断することです。
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