简体   繁体   English

格式化grep输出。 巴什

[英]Formatting grep output. Bash

trying to format output from grep to make it look better, code is 试图格式化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

and want it to look more like 并希望它看起来更像

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

Add the following command to the end of your pipe in your script, after uniq : uniq之后,将以下命令添加到脚本中管道的末尾:

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

The output will be 输出将是

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM