由于' '不是Tcl所能识别的操作符,因此在Tcl中使用Awk命令时不能用exec awk '/pattern/ {do_something}' file这种命令,即使在''前面加上/也不行。' ’ 可以被Bource Shell和其它shell识别,但是由于exec awk命令是在Tcl中解释的。

 

如果要在Tcl中执行awk命令,方法有两种:一是用“”代替' ',但是要考虑到需要把某些Tcl的特殊字符用/转义;二是用{}代替' '。比如语句

exec awk '/{print /"blah/"/}' temp.fil 

 

应该写为:

exec awk "/somePattern/ {print /$0}" someFile

 

或者

exec awk {/somePattern/ {print $0}}  someFile