将变量作为参数传递给 TCL 中的 awk 文件
Pass variable as parameter to awk file in TCL
我想将变量传递给 TCL 中的 awk 文件,这有点类似于下面的代码。有什么办法吗?
// out.tr 是输入文件,要传递的变量是 to_node
my_code.tcl:
set to_node 13
exec awk -f check_ack.awk out.tr $to_node
check_ack.awk:
BEGIN {}
{
# variable passed should be saved in node[i] --> But this doesnot work
for ( i = 0; i < ARGC; i++ ) {
node[i] = ARGV[i]
}
status =
if(FILENAME=="trace.tr") {
if(node[1] > -1 && == "s" node[1] == && status == "ack") {
print "Node" " "node[1]" " "has not sent acknowledgement" > "failed.txt"
}
}
}
END {
exit 0
}
你像这样传递变量:
awk -f some/script.awk -v var="my value"
现在您可以在 awk 中访问您的变量 var
,如果您打印它,您会看到它包含 my value
.
我想将变量传递给 TCL 中的 awk 文件,这有点类似于下面的代码。有什么办法吗? // out.tr 是输入文件,要传递的变量是 to_node my_code.tcl:
set to_node 13
exec awk -f check_ack.awk out.tr $to_node
check_ack.awk:
BEGIN {}
{
# variable passed should be saved in node[i] --> But this doesnot work
for ( i = 0; i < ARGC; i++ ) {
node[i] = ARGV[i]
}
status =
if(FILENAME=="trace.tr") {
if(node[1] > -1 && == "s" node[1] == && status == "ack") {
print "Node" " "node[1]" " "has not sent acknowledgement" > "failed.txt"
}
}
}
END {
exit 0
}
你像这样传递变量:
awk -f some/script.awk -v var="my value"
现在您可以在 awk 中访问您的变量 var
,如果您打印它,您会看到它包含 my value
.