如何解析此文本文件以获取每行的第一组数字?

时间:2010-09-14 19:35:25

标签: perl

我有一个这种文本文件

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 个答案:

答案 0 :(得分:3)

正则表达式可以很好地工作。取决于文件中的其他内容,您可以使用

while (<>) {
    next unless my ($n) = /Added record ([0-9]+)/;
    print "$n\n";
} 

答案 1 :(得分:1)

我正在考虑正则表达式的以下模式:

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

这可能会捕获包含的行 删除记录| 附录| 改变记录| 等等。

答案 2 :(得分:0)

来自shell:

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

cut -d ' ' -f 7 <infile >outfile