Я подозреваю, что вы делаете это: начиная со строки и пытаясь разбить ее на слова, только команда Tcl split
создает список с большим количеством пустых значений:
set input "Interface IP-Address OK? Method Status ProtocolFastEthernet0/0 unassigned YES unset administratively down down FastEthernet0/1 unassigned YES unset administratively down down"
set fields [split $input] ;# ==> Interface {} {} {} ...
Tcl split
по умолчанию разделяется на отдельные символы пробела (в отличие от awk или perl, которые разделяются на последовательные символы пробела).
Вы можете сделать несколько вариантов, чтобы сделать вашу жизнь проще:
1) используйте regexp, чтобы найти все «слова»
set fields [regexp -inline -all {\S+} $input]
2) используйте пакет textutil для команды split, которая действует так, как вы ожидаете:
package require textutil
set fields [textutil::splitx $input]