TCL(期待):无法读取" NF" (来自awk):没有这样的变量

时间:2017-04-20 19:43:09

标签: awk tcl expect

尝试从文件中获取第一行的最后一个单词。不确定为什么以下命令:

send "cat moo.txt | grep QUACK * | awk 'NF>1{print $NF}' meow.txt >> bark.txt "

收到错误消息can't read "NF": no such variable

我可以在我的计算机上正常运行awk 'NF>1{print $NF}' meow.txt >> bark.txt代码段。然而,当它在我的expect脚本中运行时,它会给我这个错误。

任何人都知道为什么期望不识别awk内置变量?

1 个答案:

答案 0 :(得分:1)

我认为你的脚本试图在通过send拍摄命令之前用它的值扩展变量$ NF。 $NF未设置在您的shell中,因为它是awk内部的,它还没有机会甚至可以运行,因此它无法跟踪。

尝试转义该变量,使其被视为字符串文字,awk能够在awk运行时使用它:

send "cat moo.txt | grep QUACK * | awk 'NF>1{print \$NF}' meow.txt >> bark.txt "