-1

如何使用文件中的perl打印+s之间的行,包括+s?我在一个文件中有这些行。

blah blah
+++++++++++++++++++++++++++++++++
this line should be included.
this line should be included too.
+++++++++++++++++++++++++++++++++
abcd  100101001010 

所需的输出:

+++++++++++++++++++++++++++++++++
this line should be included.
this line should be included too.
+++++++++++++++++++++++++++++++++
4

2 回答 2

4

您可以像这样使用范围运算符...

perl -nlwe 'print if /^\++$/ ... /^\++$/' input.txt

三点范围运算符有一个特殊功能,可以在这里使用。来自perldoc perlop

[“双点”“..”运算符]可以测试正确的操作数,并在它变为真的相同评估中变为假(如在 awk 中),但它仍然返回一次真。如果您不希望它在下一次评估之前测试正确的操作数,如在 sed 中,只需使用三个点(“...”)而不是两个点。在所有其他方面,“...”的行为就像“..”一样。

于 2013-03-14T16:11:23.570 回答
1

像这样的东西可以工作:

while(<>){
    print if /^\++$/ .. /^\++$/;
}
于 2013-03-14T16:05:09.713 回答