我想从TCL变量中获取一定数量的字符串,并在我的工具命令中使用它。例如:
$ {tcl_Var} - 包含类似VEG_0_1 / ABC
的字符串
我想从上面的字符串grep直到它点击第一个正斜杠,所以在上面的情况下它将是VEG_0_1。然后在我的命令中替换它。示例:
VEG_0_1 / REST_OF_THE_COMMAND。
答案 0 :(得分:2)
不要以grep
的方式思考,考虑"字符串操作"代替。
使用regsub
进行"搜索和替换:
% 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
或者,您可以通过在 / 上拆分字符串来解决问题,获取第一个组件,然后附加"其余命令":
% 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
答案 1 :(得分:0)
您可以使用regsub
TCL命令使用正则表达式执行此操作。无需运行外部程序grep
。在此处查看更多信息:http://www.tcl.tk/man/tcl8.4/TclCmd/regsub.htm
如果您不熟悉正则表达式,请阅读有关它们的TCL特定教程。
答案 2 :(得分:-1)
set tcl_Var VEG_0_1/ABC
set varlist [split $tcl_Var "/"]
set newvar [lindex $varlist 0]/REST_OF_THE_COMMAND