-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

3ドットの範囲演算子には、ここで使用できるようにする特別な機能があります。perldocperlopから

["two-dot" ".."演算子]は、正しいオペランドをテストして、(awkのように)trueになったのと同じ評価でfalseになることができますが、それでも1回はtrueを返します。sedのように、次の評価まで正しいオペランドをテストしたくない場合は、2つではなく3つのドット( "...")を使用してください。他のすべての点で、「...」は「..」と同じように動作します。

于 2013-03-14T16:11:23.570 に答える
1

このようなものが機能する可能性があります:

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