我想在tcl脚本中使用以下命令:
sed -n '452,$ { /wire/ {p;q} }' /tmp/foo
为此我已将此命令更改为:
set MIDLINE2 [ exec sed -n {1134,$ {/wire/{=;q}}} foo.txt ]
它给了我正确答案但是到位1134我想使用值为1134的变量$ MIDLINE。我该怎么做?请提出一些建议。
答案 0 :(得分:4)
这是一个简单的引用问题。你正在使用花括号来抑制变量替换。由于您需要变量替换,因此您需要使用其他内容。
set MIDLINE2 [ exec sed -n "$MIDLINE,\$ {/wire/{=;q}}" foo.txt ]
请注意,您必须在文字$
前加一个反斜杠,否则Tcl也会尝试替换它。