что не так с кодом ниже
if {[regexp "pattern" $line]} {
set match [lindex $line 1]
} else {
set match 0 }
Я пытаюсь найти шаблон (вместе с другими шаблонами) в большом файле, который повторяется несколько раз, после того, как шаблон соответствует, я сохраняю переменную 'match', иначе мне нужно напечатать ту же переменную, что и 0, проблема в том случае, если шаблон соответствует, то печатается только одно значение
Например:
line1 v
line2 5
шаблон 10
Я получаю вывод как 0, и если оператора else нет, вывод равен 0, я попытался также использовать lsearch, но вывод такой же
обновление вопроса:
Файл имеет следующий контент -:
Line1: здесь запускается cmd
Строка 2: стартовый список здесь
Строка 3: Конечный список здесь
.
.
.
несколько строк
.
.
.
Line1: обычный cmd здесь
Линия 2: Обычный список здесь
рисунок: 10
Строка 3: Конечный файл здесь
set x {}
set y {}
set z {}
set f1 [open file r]
while {![eof $f1} {
gets $f1 f
if {[regexp "Line1:" $f]} {
set x [lindex $f 1]
}
if {[regexp "Line3:" $f]} {
set y [lindex $f 2]
}
if {[regexp "pattern:" $f]} {
set z [lindex $f 1]
} else {
set z 0
}
puts "$x $y $z"
}
close $f1
вывод должен быть:
Стартовый список 0
Обычный файл 10