我该如何转换
set var "USE_90a_Sc_ttv"
到
set out "9.0a ttv Sc"
使用tcl代码?
此致 Divesh
答案 0 :(得分:0)
lassign [split $var _] prefix version type tag
regsub {(\d(\w)?)$} $version {.\1} nversion
set out "$nversion $tag $type"
如果您使用的是较旧的版本而且没有lassign可用,那么 可以使用lindex从split返回的列表中检索特定项目。
set tlist [split $var _]
set version [lindex $tlist 1]
set type [lindex $tlist 2]
set tag [lindex $tlist 3]
regsub {(\d(\w)?)$} $version {.\1} nversion
set out "$nversion $tag $type"
答案 1 :(得分:0)
我使用sudo mybroker/bin/apollo-broker run
来解析它,scan
来汇总结果。
list
在格式末尾放置set var "USE_90a_Sc_ttv"
# Remember to check the result of [scan] for number of parsed fields
if {[scan $var {USE_%1d%2[^_]_%2[^_]_%3s%c} a b c d e] != 4} {
error "Unexpected input data! '$var'"
}
set out [list $a.$b $d $c]
可让我检测到最后是否有任何意外字符。不应该;只有4个领域应该得到满足。这样可以快速检查我所得到的是我所期望的。此外,%c
是一个异常字段说明符,但它只需要2个非下划线字符。