2010-06-21 33 views
1

我想用grep開始用@也行開始//跟着一行開頭爲@我如何可以grep這些線路

例子:

//text1 
@text2 
text3 

結果:

//text1 
@text2 

我該如何使用grep或任何其他基本的unix工具來做到這一點?

回答

2
perl -ne 'print($z . $_) if m{^\@}; $z=(m{^//} ? $_ : "");' 

這個單線程一次處理STDIN一行。

如果找到以@開頭的行,則會轉儲$z後跟當前行的內容。

然後,如果它檢測到一條以//開頭的行,它將行保存在變量$z中。 $z變量被清除,如果行不是開始//

我已經給了這個快速測試,應該做的工作要求。

grep工具不記得行之間的狀態。

+0

完美的作品。謝謝! – picknick 2010-06-21 13:28:54