awk
также предоставляет простое решение с использованием флага для управления печатью. Ниже переменная skip
используется в качестве флага. Если 1
строки пропущены, то при переходе от 1
к 0
скрипт завершается.
awk -v skip=0 '$1=="TER"{skip=skip?1:0; if (!skip)exit}1' file
Выше $1=="TER"
используется для сопоставления строк (записей), где первое поле равно TER
(это устраняет неоднозначность между "TER"
и "TERMINAL"
, et c ...) В рамках правила троичное skip=skip?1:0
устанавливает skip=1
в первый раз, когда "TER"
встречается и 0
на следующем. Если skip==0
, скрипт завершается. 1
в конце - это просто сокращение для print
.
Пример использования / Вывод
Используя ваши данные в file
, вы получите:
$ awk -v skip=0 '$1=="TER"{skip=skip?1:0; if (!skip)exit}1' file
ATOM 186 O3' U 6 7.297 6.145 -5.250 1.00 0.00 O
ATOM 187 HO3' U 6 7.342 5.410 -5.865 1.00 0.00 H