2014-07-20 8 views
0

어떻게 행과 열로 모든 값을 나열 할 수 있도록 코드를 수정합니까?NS2 AWK 스크립팅을 사용하여 그래프 작성

바로 아래의 다음 코드는 바로 계산의 답을 이끌어냅니다.

예 :

**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 배 Y2

3 내가 시도

X3의 Y3 같은 명령을 사용하는 방법 : awk -f [스크립트 이름] .awk [추적 파일 이름] .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"; 
} 
+0

질문을 다시 입력하십시오. 원하는 출력을 얻기 위해 추적 할 ns2 추적 파일의 요소를 정의하는 곳에서 ns2 추적 입력을 포함하십시오. 포함시킨 awk 스크립트는 그래프와 전혀 관련이없는 것처럼 보입니다. – n0741337

답변

-2

당신이 코드에 문제가 우선은 ...... 그냥 카운트 분할하기 전에 if(count)을 넣어 그것을 해결 ..... 0 대부분의 아마 부문 오류를 줄 것이다. 두 번째로 for 루프를 사용하여 행렬 형식으로 인쇄하십시오.