У меня есть текстовый файл, который содержит несколько записей, которые выглядят как пример ниже:
# 2018 11 21 17 47 37.708756 -34.390213 116.803673 2.6972 0.442474 3.324627 2.840390 0.885880 890
LM01 0.836408 1.00 P
LM01 1.035398 1.00 S
LM03 3.987074 1.00 S
# 2018 11 22 11 58 25.550581 -34.439400 116.750832 2.8513 0.288144 3.306790 2.576028 0.771026 891
LM01 1.664419 1.00 P
LM01 2.471786 1.00 S
LM03 3.536432 1.00 P
# 2018 11 22 14 38 7.190175 -34.447819 116.788727 3.1661 0.577347 2.063253 2.132511 0.608057 892
LM01 1.629825 1.00 P
LM02 3.059825 1.00 P
LM03 3.284825 1.00 P
LM01 2.378885 1.00 S
Мне нужно найти способ, предпочтительно в Bash или Perl, который читает строку с #
, поднаборы этой строки основаны на столбце 8 (широта), и, если условие выполнено, печатает остальные строки (например, LM ...), пока не достигнет следующей строки с #
.Например, я хочу напечатать только «записи», где столбец 8 <-34.4, и включить строки LM * для этой записи.</p>
Я могу придумать код для чтения каждой #
строки, но я не уверен, как запрограммировать "если условие выполнено, выведите строки LM, пока не достигнете следующей # строки".Ожидаемый результат будет:
# 2018 11 22 11 58 25.550581 -34.439400 116.750832 2.8513 0.288144 3.306790 2.576028 0.771026 891
LM01 1.664419 1.00 P
LM01 2.471786 1.00 S
LM03 3.536432 1.00 P
# 2018 11 22 14 38 7.190175 -34.447819 116.788727 3.1661 0.577347 2.063253 2.132511 0.608057 892
LM01 1.629825 1.00 P
LM02 3.059825 1.00 P
LM03 3.284825 1.00 P
LM01 2.378885 1.00 S