если матч найдено перейти к конкретной строке в Perl
Здравствуйте, эксперты,
Я новичок в Perl, Просто любопытно узнать, как сделать следующее Perl.
Предположим, я уже один текстовый файл, как ниже. когда он основывает "* Главная Пуск"
Затем перейдите к "* Главная Конец ,,,,,,,," patteren и просто собирать количество по сравнению с предыдущим линия "* Главная Конец ,,,,,,," образец. В моем случае это 5. Потом начала excuting, как правило, от "* Главная Пуск" Позиция
Ниже приводится картина .. I DONT хотите создать какой-либо временный файл также ..
Входной файл:
Код:
*Init End
*Main Start
*Comment Reset Timers
000000,0000,0,0,0,0,0,1,0
000000,0000,0,0,0,0,1,1,0
*Comment Control Frame at 1.04596 ms
000000,0400,0,0,0,0,1,0,1
2418A4,0000,0,1,3,0,0,0,0
049C00,0000,0,0,2,0,0,0,0
*Comment Control Frame at 1.04673 ms
*Comment Control Frame at
000002,0000,0,0,0,0,1,0,1
241002,0000,0,1,3,0,0,0,0
000100,0000,0,0,2,0,0,0,0
*Comment Control Frame at
000004,0000,0,0,0,0,1,0,1
241002,0000,0,1,3,0,0,0,0
000000,0000,0,0,2,0,0,0,0
*Comment Frame 13 at ** us,,,,,,,,
000005,7E3D,0,0,0,0,1,0,1
*Main End,,,,,,,,
вывод:
Код:
*Init End
*Main Start
repeat(5);
process all lines as usual here.
............
*Main End,,,,,,,,,
Я уже на печать всех строк, как это, когда он обнаружил строки, начинающиеся с *. Thats, почему я делаю, как ниже
Код:
if(m/^\*/){
print "//", $_;
next;
}
Код:
Basic Algorithm of my programme need :
1. If "*Main Start" pattern found go to line where Pattern matches "*Main end".
2. Get the previous line. and get the value of the first field.
3. Return to "*Main start" position again. & Print repeat(that number) : in my case it is 5 :
4. stop/next;
Любая помощь наиболее appriciated ..
привет,
user_prady
Последняя редакция user_prady; на 03-28-2008 12:51 AM..
|