2014-06-26 151 views
0

我想從TCL變量中grep一定數量的字符串,並在我的工具命令中使用該字符串。例如:來自TCL變量的grep字符串

$ {tcl_Var} - 這包含字符串如VEG_0_1/ABC

我想從上面的字符串到grep,直到它的點它首先撞擊着它會在上述情況下斜線,所以是VEG_0_1。然後在我的命令中替換它。示例:

VEG_0_1/REST_OF_THE_COMMAND。

回答

0

你可以用正則表達式使用regsub TCL命令來做到這一點。沒有必要運行外部程序grep。在這裏看到更多的信息:http://www.tcl.tk/man/tcl8.4/TclCmd/regsub.htm

如果您是新手正規表達式,請閱讀關於他們的TCL特定教程。

2

不要認爲根據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 
+0

你先生!一個救命的救星。該解決方案就像一個魅力。 – user2643912

-1
set tcl_Var VEG_0_1/ABC 
set varlist [split $tcl_Var "/"] 
set newvar [lindex $varlist 0]/REST_OF_THE_COMMAND