使用来自tcl脚本的awk自动运行多个节点

时间:2014-05-22 05:06:22

标签: awk tcl

我有一个名为throughput.awk的awk文件,用于计算NS-2中跟踪文件的吞吐量。

BEGIN {
    FS="[[:space:]]|_"
}

{
  action = $1;
  node_id = $4;
  time = $2;
  dest = $6;
  app = $10;
  pkt_size = $11;

  if ( action == "r" && dest == "MAC" && app == "cbr" && time > 10 && (node_id == 1)) {
    sum_ = sum_ + pkt_size;
  }
}
END {

}

我想要的是我必须从TCL脚本计算每个节点的多个节点的吞吐量,如下所示:

for {set node 1} {$node < N } {incr node}
    exec awk -f throughput.awk test.tr
}

所以跟踪文件中的“node”变量可以从TCL更改。怎么做?

1 个答案:

答案 0 :(得分:1)

只需使用-v参数:

for (node=1;node<N;node++){
    exec awk -v node=$node -f throughput.awk test.tr
}

在awk里面

if ( action == "r" && dest == "MAC" && app == "cbr" && time > 10 && (node_id == node)) {
    sum_ = sum_ + pkt_size;
  }

在“=”节点之前是awk中变量的名称,它的值($ node)将是Tcl中的节点val

相关问题