在Tcl脚本中调用的sed命令中使用变量

时间:2012-07-19 14:35:13

标签: tcl

我想在tcl脚本中使用以下命令:

sed -n '452,$ { /wire/ {p;q} }' /tmp/foo

为此我已将此命令更改为:

set MIDLINE2 [ exec sed -n {1134,$ {/wire/{=;q}}} foo.txt ] 

它给了我正确答案但是到位1134我想使用值为1134的变量$ MIDLINE。我该怎么做?请提出一些建议。

1 个答案:

答案 0 :(得分:4)

这是一个简单的引用问题。你正在使用花括号来抑制变量替换。由于您需要变量替换,因此您需要使用其他内容。

set MIDLINE2 [ exec sed -n "$MIDLINE,\$ {/wire/{=;q}}" foo.txt ]

请注意,您必须在文字$前加一个反斜杠,否则Tcl也会尝试替换它。