Найти МЕЛЬНИЦУ в данных MSQ

#database #tcl #storage

#База данных #tcl #Хранение

Вопрос:

У меня есть данные, которые выглядят следующим образом

 121,736,52,0,5.295,0.000,70.000,3,1.0000,3,1  
122,736,52,0,5.295,0.000,70.000,3,1.0000,3,1  
123,736,52,0,5.295,0.000,70.000,3,1.0000,3,1  
124,736,52,1,5.295,1.000,70.200,3,1.0000,3,1  
124,736,52,OIND,70.200,27.641,-np-  
125,736,52,1,5.295,1.000,72.175,3,1.0000,3,1  
125,736,52,OIND,72.175,308.340,MILL    
129,736,52,1,5.295,1.000,70.525,3,1.0000,3,1  
129,736,52,OIND,70.525,76.211,MILL  
 

Мне нужно сохранить все данные, которые заканчиваются на «MILL» или «-np-»
, а затем поместить их в новый файл MSQ

Любые предложения Язык TCL

Ответ №1:

Что-то вроде

 set in [open yourfile r]
set out [open newfile w]
while {[gets $in line] >= 0} {
    if {[regexp {(?:MILL|-np-)$} $line]} {
         puts $out $line
    }
}
close $in
close $out
 

Ответ №2:

Альтернатива отличному ответу Шона:

 set in [open yourfile r]
set out [open newfile w]
while {[gets $in line] >= 0} {
    switch -glob -- $line {
        {*MILL} -
        {*-np-} {
             puts $out $line
        }
    }
}
close $in
close $out
 

шаблоны глобусов описаны в string match документации.