如何修改代码,使其按行和列列出所有值?
现在,下面的代码直接将我引向计算的答案。
例如:
**GeneratedPackets = 2438
ReceivedPackets = 2386
Packet Delivery Ratio = 97.8671
Total Dropped Packets = 9
Average End-to-End Delay = 31.013 ms**但我想要像这样的东西,以便绘制我的图表:
1个x1 y1
2个x2 y2
3 x3 y3
我尝试过类似这样命令的方法: awk -f scriptname.awk tracefilename.tr > graph.xgr
然而,它只显示了上面的计算。
BEGIN {
seqno = -1;
droppedPackets = 0;
receivedPackets = 0;
count = 0;
}
{
#packet delivery ratio
if($4 == "AGT" && $1 == "s" && seqno < $6) {
seqno = $6;
} else if(($4 == "AGT") && ($1 == "r")) {
receivedPackets++;
} else if ($1 == "D" && $7 == "tcp" && $8 > 512){
droppedPackets++;
}
#end-to-end delay
if($4 == "AGT" && $1 == "s") {
start_time[$6] = $2;
} else if(($7 == "tcp") && ($1 == "r")) {
end_time[$6] = $2;
} else if($1 == "D" && $7 == "tcp") {
end_time[$6] = -1;
}
}
END {
for(i=0; i<=seqno; i++) {
if(end_time[i] > 0) {
delay[i] = end_time[i] - start_time[i];
count++;
}
else
{
delay[i] = -1;
}
}
for(i=0; i<count; i++) {
if(delay[i] > 0) {
n_to_n_delay = n_to_n_delay + delay[i];
}
}
n_to_n_delay = n_to_n_delay/count;
print "\n";
print "GeneratedPackets = " seqno+1;
print "ReceivedPackets = " receivedPackets;
print "Packet Delivery Ratio = " receivedPackets/(seqno+1)*100
"%";
print "Total Dropped Packets = " droppedPackets;
print "Average End-to-End Delay = " n_to_n_delay * 1000 " ms";
print "\n";
}发布于 2016-03-01 03:20:47
首先,你会遇到一个问题,code......it会给出一个错误,最有可能的错误是,在0.....fix除法之前放一个if(count)。其次,使用for循环将其打印为矩阵格式
https://stackoverflow.com/questions/24846516
复制相似问题