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

使用tcl脚本中的awk自动运行多个节点,awk,tcl,Awk,Tcl,我有一个名为through.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" &&

我有一个名为through.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
}
用于{set node 1}{$node
所以跟踪文件中的“node”变量可以从TCL更改。怎么做

只需使用-v参数:

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

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

那么awk文件中的node==1呢?那个么我应该修改什么呢?“=”之前的第一个“节点”在TCL或awk脚本中是变量?在“=”节点将是awk中变量的名称,它的值($node)将是TLCI中的node val,运行这些代码时出错,我使用{set node 1}{$node<10}{incr node}{exec awk-v node_id=$node-f throughput.awk test.tr},awk文件与您的相同,当我在awk文件的开头使用node=$node和delete node_id声明时,它可以工作
if ( action == "r" && dest == "MAC" && app == "cbr" && time > 10 && (node_id == node)) {
    sum_ = sum_ + pkt_size;
  }