Выбор линий между двумя маркерными фигурами - PullRequest
0 голосов
/ 16 февраля 2020

Как выбрать линии, которые встречаются между двумя различными шаблонами маркеров в файле, используя Tcl?

Например: Предположим, файл содержит:

abc
def1
ghi1
jkl1
mno
abc
def2
ghi2
jkl2
mno
pqr
stu

И начальный шаблон - abc и конечный шаблон mno. Итак, мне нужен вывод:

def1
ghi1
jkl1
def2
ghi2
jkl2

1 Ответ

1 голос
/ 16 февраля 2020

Вам просто нужен маленький конечный автомат:

      set inrange false
      while {[gets $fh line] != -1} {
          if {$inrange} {
              if {$line eq "mno"} {
                  set inrange false
              } else {
                  puts $line
              }
          } else {
              if {$line eq "abc"} {
                  set inrange true
              }
          }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...