dimanche 13 février 2022

Matching pattern and adding values to a list in TCL

I wondered if I could get some advice, I'm trying to create a list by reading a file with input shown below

Example from input file

Parameter.Coil = 1
Parameter.Coil.Info = Coil
BaseUTC.TimeSet_v0 = 1
BaseUTC.TimeSet_v0.Info = TimeSet_v0
BaseUTC.TimeSet_v1 = 1
BaseUTC.TimeSet_v1.Info = TimeSet_v1
BaseUTC.TimeSet_v14 = 1
BaseUTC.TimeSet_v14.Info = TimeSet_v14
BaseUTC.TimeSet_v32 = 1
BaseUTC.TimeSet_v32.Info = TimeSet_v32
VC.MILES = 1
VC.MILES.Info = MILES_version1

I am interested in any line with prefix of "BaseUTC." and ".Info" and would like to save value after "=" in a list

Desired output = TimeSet_v0 TimeSet_v1 TimeSet_v14 TimeSet_v32

I've tried the following but not getting the desired output.

set input [open "[pwd]/Data/Input" r]

set list ""
while { [gets $input line] >= 0 } {
incr number
set sline [split $line "\n"]
if {[regexp -- {Steering.} $sline]} {
#puts "lines = $sline"
if {[regexp -- {.Info} $sline]} {
set output [lindex [split $sline "="] 1]
lappend list $output
}}}
puts "output = $list"
close $input

I get output as

output = \ TimeSet_v0} \ TimeSet_v1} \ TimeSet_v14} \ TimeSet_v32}

Can any help identify my mistake, please.

Thank you in advance.

Aucun commentaire:

Enregistrer un commentaire