我有一个这种文本文件
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
答案 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