Как я могу разобрать этот текстовый файл, чтобы получить первую группу цифр в каждой строке? - PullRequest
0 голосов
/ 14 сентября 2010

У меня есть текстовый файл такого типа

INFO [main] (porter.java:100) - Added record 7147  read from file: 1484301                 
INFO [main] (porter.java:100) - Added record 7148  read from file: 1484302   
INFO [main] (porter.java:100) - Added record 17147 read from file: 1484303  
INFO [main] (porter.java:100) - Added record 76148 read from file: 1484333  
INFO [main] (porter.java:100) - Added record 148   read from file: 1484342

Как я могу разобрать это, получив первые цифры в этом случае как

7147
7148
17147
76148
148

Ответы [ 3 ]

3 голосов
/ 14 сентября 2010

регулярное выражение будет работать хорошо. В зависимости от того, что еще находится в файле, вы можете сойти с

while (<>) {
    next unless my ($n) = /Added record ([0-9]+)/;
    print "$n\n";
} 
1 голос
/ 15 сентября 2010

Я думал о следующем шаблоне для регулярного выражения:

my ($n) = /record ([0-9]+)/;

Это может захватывать строки, содержащие Удаленная запись | Добавленная запись | Изменена запись | и т. д.

0 голосов
/ 15 сентября 2010

Из оболочки:

perl -wlane'print $F[6]' <infile >outfile

или

cut -d ' ' -f 7 <infile >outfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...