Perl: читать и обрабатывать файл кусками - PullRequest
0 голосов
/ 31 октября 2011

Надеюсь, этот вопрос не слишком прост - я довольно неопытен с Perl. Моя проблема: я хочу прочитать и обработать файл кусками, но Разделители кусков могут различаться. У меня весь файл в переменной $ Текст. Как пример:

One

Two

BEGIN

Three

Four

END

Five

Я хочу пошагово просмотреть этот файл. Я хочу читать до следующего пустая строка и сохранить (и обработать) результат как один фрагмент, так что «Один» и «Два» будут первыми двумя кусками. Если новый кусок начинается с ключевое слово "НАЧАТЬ", я хочу читать и обрабатывать, пока ключевое слово "КОНЕЦ", поэтому кусок будет "три \ n четыре". Как бы я сделал это в Perl?

Я читал о функции «index», но не смог пройти через нее мой текст

Большое спасибо!

1 Ответ

3 голосов
/ 31 октября 2011

Вы можете установить разделитель входной записи на пустую строку, чтобы включить режим «абзац». Затем используйте оператор триггера для обработки диапазона между BEGIN / END; что-то вроде:

perl -nle '$/="";if (/^BEGIN/../^END/) {print "> $_"} else {print "[ $_ ]"}' myfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...