【发布时间】:2018-01-29 02:06:06
【问题描述】:
我想从直播流中排序/获取特定时间段的唯一计数:
some-stream | sort | uniq -c | sort -nr
例如,some-stream 这里可以是tcpdump -i any | awk '{print $3}',为您提供 IP 列表。
是否可以在流实时更新时不断更新唯一计数?
【问题讨论】:
我想从直播流中排序/获取特定时间段的唯一计数:
some-stream | sort | uniq -c | sort -nr
例如,some-stream 这里可以是tcpdump -i any | awk '{print $3}',为您提供 IP 列表。
是否可以在流实时更新时不断更新唯一计数?
【问题讨论】:
您能否尝试关注awk,如果这对您有帮助,请告诉我。
解决方案 1: 要获取服务器名称第 3 列的所有值(如果您在第 3 列中有 IP,我们也可以更改解决方案中的正则表达式)
tcpdump -i any |stdbuf -oL awk '$3 ~ /\.com/{match($3,/.*\.com/);print substr($3,RSTART,RLENGTH)}'
解决方案 2: 要获得以下唯一服务器列表可能对您有所帮助:
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)]}}'
或
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)]}
}'
【讨论】: