从Tcl脚本运行管道unix命令

从Tcl脚本运行管道unix命令,tcl,Tcl,我正在尝试运行以下程序: exec tail CRON_GBOI_INC_AVG_COMPRESS_20140425_18* | grep -i "status of" | awk -F" " '{ print $NF }' 它所做的是跟踪文件,grep,用于包含文本status of的行,该行将返回一个字符串,然后返回字符串中的最后一个字符 但是,Tcl总是抛出以下错误: 编译该行时缺少右括号或右大括号 如何更改代码以实现所需的目标?Tcl有可能吗?Tcl的语法不是shell的语法。该行的转

我正在尝试运行以下程序:

exec tail CRON_GBOI_INC_AVG_COMPRESS_20140425_18* | grep -i "status of" | awk -F" " '{ print $NF }'
它所做的是跟踪文件,
grep
,用于包含文本
status of
的行,该行将返回一个字符串,然后返回字符串中的最后一个字符

但是,Tcl总是抛出以下错误:

编译该行时缺少右括号或右大括号


如何更改代码以实现所需的目标?Tcl有可能吗?

Tcl的语法不是shell的语法。该行的转换为:

exec tail {*}[glob CRON_GBOI_INC_AVG_COMPRESS_20140425_18*] | \
        grep -i "status of" | awk "-F " {{ print $NF }}
也就是说,globbing是显式的,双引号是整词的圆引号,单引号变成大括号。(为了清晰起见,它还用反斜杠换行符顺序在两行上断开。)

Sirs, 实际上,Tcl字符串处理可能会使这更容易:-

set stringBack [exec tail [lindex $argv 0] | grep -i "[lindex $argv 1]" ]
set wanted [string index $stringBack end]
puts "stat chr is $wanted" 

比如说,

./charget /path/to/file 'text hook we choose'

以文件和文本挂钩作为参数(引用文本挂钩字符串以切换到grep)

不幸的是,这对我不起作用。这是我在编译“exec tail{*}[glob CRON_GBOI_INC_AVG_COMPRESS_20140425_18*]| grep-I”状态为“{print$NF}”时,在右大括号后得到的
额外字符的错误消息。
我还尝试了你的
awk“-F”
语法,但也不起作用`