我想從TCL變量中grep一定數量的字符串,並在我的工具命令中使用該字符串。例如:來自TCL變量的grep字符串
$ {tcl_Var} - 這包含字符串如VEG_0_1/ABC
我想從上面的字符串到grep,直到它的點它首先撞擊着它會在上述情況下斜線,所以是VEG_0_1。然後在我的命令中替換它。示例:
VEG_0_1/REST_OF_THE_COMMAND。
我想從TCL變量中grep一定數量的字符串,並在我的工具命令中使用該字符串。例如:來自TCL變量的grep字符串
$ {tcl_Var} - 這包含字符串如VEG_0_1/ABC
我想從上面的字符串到grep,直到它的點它首先撞擊着它會在上述情況下斜線,所以是VEG_0_1。然後在我的命令中替換它。示例:
VEG_0_1/REST_OF_THE_COMMAND。
你可以用正則表達式使用regsub
TCL命令來做到這一點。沒有必要運行外部程序grep
。在這裏看到更多的信息:http://www.tcl.tk/man/tcl8.4/TclCmd/regsub.htm
如果您是新手正規表達式,請閱讀關於他們的TCL特定教程。
不要認爲根據grep
,請考慮一下「字符串操作」。
的「搜索並替換:通過分割上/字符串,以第一組分,然後追加
% set tcl_Var VEG_0_1/ABC
VEG_0_1/ABC
% set newvar [regsub {/.+} $tcl_Var {/REST_OF_THE_COMMAND}]
VEG_0_1/REST_OF_THE_COMMAND
或者,你的問題是可以解決的‘使用regsub
命令’的其餘部分:
% set newvar "[lindex [split $tcl_Var /] 0]/REST_OF_THE_COMMAND"
VEG_0_1/REST_OF_THE_COMMAND
或者使用字符串指數:
% set newvar "[string range $tcl_Var 0 [string first/$tcl_Var]]REST_OF_THE_COMMAND"
VEG_0_1/REST_OF_THE_COMMAND
set tcl_Var VEG_0_1/ABC
set varlist [split $tcl_Var "/"]
set newvar [lindex $varlist 0]/REST_OF_THE_COMMAND
你先生!一個救命的救星。該解決方案就像一個魅力。 – user2643912