使用perl返回找到字符串的页/块号

时间:2014-02-16 11:04:21

标签: regex perl

我有一个像这样结构化的文本文件......

--- Page 01 ---
blah blahblah
blahblahblah
--- Page 01 ---
--- Page 02 ---
blah asdf svlah
blahblahsafblah
--- Page 02 ---
--- Page 03 ---
nothing here
--- Page 03 ---

无论频率如何,我想找到一种方法来查找关键字blah出现的页码。

有什么想法吗?非常感谢。

编辑: 我发现下面的oneliner似乎可以解决这个问题,但输出有空行。怎么了?如果我删除\n,我会得到一长串数字...... :(

perl -ne 'print "$1\n" if /blah/ .. /--- Page (\d+)/' 

输出:

01


02

1 个答案:

答案 0 :(得分:0)

这里发生的事情是,从'blah'的第一场比赛开始,它满足所有线路,直到找到'Page(\ d +)'。

试试这个:

    perl -ne 'print "$1$2" if /blah/ .. /--- Page (\d+) ---(\n)/'