awk 是一种程序语言,对于资料的处理具有很强的功能,可以使用很短的代码轻易地完成对文本档案做修改、分析、提取和比较等处理。 相对比,如果用C或Pascal等语言编写程序完成上述功能,需要花费较多的时间编写很长的代码。
安装gawk:
sudo apt-get install gawk
在ns3中生成tr格式文件,需要在simulator::run前面加如下语句:
AsciiTraceHelper ascii;
csma.EnableAsciiAll (ascii.CreateFileStream ("文件名.tr"));
下面是计算时延的完整gwak代码:
BEGIN {
highest_packet_id=0;
FS="[() \t]";#field seperator is ')' or ‘(’or ' '
myScrIP = "10.1.1.1";#This is the link that we pay attention to
myDstIP = "10.1.7.1"
}
{
action = $1;
time = $2;
namespace=$3;
for (i=1;i<=NF;i++)#find packet ID
{
if ($i ~ /id/) #if $i field matches "id"
myPacketID = $(i+1);#record the id of the packet for future use
else if ($i ~ />/) #if $i field matches ">