0

tclスクリプトで次のコマンドを使用したい:

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

そのために、このコマンドを次のように変更しました。

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

それは私に正しい答えを与えますが、代わりに1134の値を持つ変数$ MIDLINEを使用したいと思います。どうすればそれを行うことができますか?何か提案してください。

4

1 に答える 1

4

これは引用の単純な問題です。変数の置換を禁止する中括弧を使用しています。変数の置換が必要なので、別のものを使用する必要があります。

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

リテラルの前に円記号を付ける必要があることに注意してください$。そうしないと、Tclもそれを置き換えようとします。

于 2012-07-19T14:41:32.657 に答える