我想在一段时间内从实时流中排序/获取唯一计数:
some-stream | sort | uniq -c | sort -nr
例如,some-stream
此处可以tcpdump -i any | awk '{print $3}'
为您提供IP列表。
当流实时更新时,是否可以不断更新唯一计数?
答案 0 :(得分:0)
您能否请关注awk
并告诉我这是否对您有所帮助。
解决方案1: 要获取第3列服务器名称的所有值(如果您在第3列中有IP,我们也可以在解决方案中更改正则表达式)
tcpdump -i any |stdbuf -oL awk '$3 ~ /\.com/{match($3,/.*\.com/);print substr($3,RSTART,RLENGTH)}'
解决方案第二: 要获取以下唯一服务器列表,可能会对您有所帮助:
tcpdump -i any |stdbuf -oL awk '$3 ~ /\.com/{match($3,/.*\.com/);if(!a[substr($3,RSTART,RLENGTH)]++){print substr($3,RSTART,RLENGTH);a[substr($3,RSTART,RLENGTH)]}}'
<强> OR 强>
tcpdump -i any |
stdbuf -oL awk '$3 ~ /\.com/{
match($3,/.*\.com/);
if(!a[substr($3,RSTART,RLENGTH)]++){
print substr($3,RSTART,RLENGTH);
a[substr($3,RSTART,RLENGTH)]}
}'