0

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

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

为此,我已将此命令更改如下:

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

它给了我正确的答案,但是在 1134 处,我想使用值为 1134 的变量 $MIDLINE。我该怎么做?请提出一些方法。

4

1 回答 1

4

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

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

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

于 2012-07-19T14:41:32.657 回答