从Tcl脚本运行管道式unix命令

时间:2014-04-28 20:56:17

标签: tcl

我正在尝试运行以下内容:

exec tail CRON_GBOI_INC_AVG_COMPRESS_20140425_18* | grep -i "status of" | awk -F" " '{ print $NF }'

它的作用是为包含文本grep的行添加文件status of,该文件将返回一个字符串,然后返回字符串中的最后一个字符。

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

编译该行时

missing close-bracket or close-brace

如何更改代码以执行我需要实现的操作?是否可以使用Tcl?

2 个答案:

答案 0 :(得分:1)

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

exec tail {*}[glob CRON_GBOI_INC_AVG_COMPRESS_20140425_18*] | \
        grep -i "status of" | awk "-F " {{ print $NF }}

这就是说,全局是明确的,双引号是圆整字,单引号改为括号。 (为了清楚起见,它还用2行反斜线换行序列。)

答案 1 :(得分:0)

的先生们,     碰巧,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不敏感)。