1

我有基于 2 秒间隔的计数器。

  • 我需要验证计数应该在 1200 到 1600 的范围内。有什么方法可以在不解析整个输出的情况下做到这一点?

  • 如果对于任何特定的时间间隔,计数不属于匹配范围,则应打印一些错误/警告消息。

  • 有什么方法可以得到这个计数器的平均值吗?

# tshark -r q4-mme.pcap -qz io,stat,2,"COUNT(frame.time)frame.time"
==================================================== ==================
IO 统计
间隔:2.000 秒
第 0 列:COUNT(frame.time)frame.time
                | 第 0 列
时间 | 数数
000.000-002.000 1241
002.000-004.000 1272
004.000-006.000 1315
006.000-008.000 1371
008.000-010.000 1195
010.000-012.000 1299
012.000-014.000 1305
014.000-016.000 1391
016.000-018.000 1463
018.000-020.000 1454
020.000-022.000 1392
022.000-024.000 1438
024.000-026.000 1362
026.000-028.000 1491
028.000-030.000 1392
030.000-032.000 1422
032.000-034.000 1425
034.000-036.000 1486
036.000-038.000 1449
038.000-040.000 1487
040.000-042.000 1402
042.000-044.000 1420
044.000-046.000 1330
046.000-048.000 1458
048.000-050.000 1420
050.000-052.000 144
==================================================== ==================

请让我知道如何才能达到预期的效果。

4

1 回答 1

1

我对python不熟悉。但这里尝试使用awk. 您可以python使用适当的系统命令调用它。

验证 1200 到 1600 之间的计数范围

awk '( $1~/[0-9]+\.[0-9]+-[0-9]+\.[0-9]+/ && ($2<1200||$2>1600) ) {print $2}' file

输出:

1195
144

计算平均值

awk '$1 ~ /[0-9]+\.[0-9]+-[0-9]+\.[0-9]+/ {total+=$2; cnt++;} END {printf "Average = %.2f\n", total/cnt}' file

输出:

Average = 1339.38
于 2013-10-16T12:46:22.110 回答