/ / grep出力をフォーマットします。 bash - bash、grep、フォーマット

grep出力をフォーマットします。 Bash - bash、grep、フォーマット

見栄えを良くするためにgrepからの出力をフォーマットしようとすると、コードは

grep "$1" "$2" | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" | sort | uniq -c
$ bash myScript.sh "Failed password for root" /home/user/auth.log
5 108.166.98.9
1426 108.53.208.61
1 113.108.211.131
1 117.79.91.195
370 122.224.49.124
3480 144.0.0.32
11 162.144.94.250
6 162.253.66.74
3 186.67.83.58
1 222.190.114.98
205 59.90.242.69
705 60.172.228.226
3 64.251.21.104

そしてもっと見た目にしたい

ip: xxx.xxx.xxx.xxx attempts: X

回答:

回答№1は6

次のコマンドをスクリプトのパイプの最後に追加します。 uniq

... | awk "{print "ip: " $2 " attempts: " $1}"

出力は次のようになります。

ip: 108.166.98.9 attempts: 5
ip: 108.53.208.61 attempts: 1426
...