perl:以块的形式读取和处理文件

时间:2011-10-31 15:22:10

标签: perl

我希望这个问题不是太基础 - 我很缺乏经验 perl的。我的问题:我想以块的形式阅读和处理文件,但是 块的分隔符可能会有所不同。我把整个文件放在一个变量中 $文本。举个例子:

One

Two

BEGIN

Three

Four

END

Five

我想通过块来逐步浏览此文件。我想读到下一个 空行并将结果保存(并处理)为一个块,因此“一”和 “两个”将是前两个块。如果新的块开头 关键字“BEGIN”,我想阅读并处理直到关键字“END”,所以 chunk将是“Three \ n Four”。我怎么在perl中这样做?

我已经阅读了有关“索引”功能的内容,但无法让它一步一步完成 我的文字。

非常感谢!

1 个答案:

答案 0 :(得分:3)

您可以将输入记录分隔符设置为空字符串以启用“段落”模式。然后使用触发器操作符来处理BEGIN / END之间的范围;类似的东西:

perl -nle '$/="";if (/^BEGIN/../^END/) {print "> $_"} else {print "[ $_ ]"}' myfile