我有一个名为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更改。怎么做?
答案 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