【发布时间】:2014-09-10 01:03:13
【问题描述】:
我有以下运行测试的结果/统计文件,我想使用 awk 进行分析:
$date $time $statname $traffic_rate $val1 $val2
20140909 132920326 stat1 30/sec 40 80
20140909 132950326 stat1 29/sec 60 20
20140909 133020326 stat1 28/sec 70 100
20140909 133050326 stat1 0/sec 0 0
20140909 133120326 stat1 0/sec 0 0
20140909 133150326 stat1 30/sec 90 50
$time 的格式为:HHMMSSmmm,统计信息每隔 30 秒生成一次。我需要对 $traffic_rate 值 >= '28/sec' 的每个连续统计数据的 $val 和 $val2 值进行平均。忽略 traffic_rate = 28/sec 重复该过程,依此类推。
我想使用 bash 脚本,并认为 awk 将是分析列数据的好选择。为了将连续时间戳与 $traffic_rate >= 28/sec 进行比较,我需要将 $time 与 mktime 进行转换。但是,我不能拆分 $time,因为没有分隔符。有没有办法像 PHP 那样按字符数进行拆分?
示例输出如下:
test# $val $val2
1 170/3 200/3
2 90/1 50/1
也就是说,每个连续的 >= 28/sec 是一个单独的测试结果,应该单独计算。
此外,任何其他分析这些类型模式的建议都将不胜感激。谢谢。
【问题讨论】:
-
您还应该发布您尝试过的内容和预期的输出。
-
添加了示例输出