web-dev-qa-db-ja.com

複数の行で複数のパターンをgrepするにはどうすればよいですか?

正確に言うと

Some text
begin
Some text goes here.
end
Some more text

そして、「begin」から「end」までのブロック全体を抽出したいと思います。

awkでawk '/begin/,/end/' textのようにできます。

Grepの使用方法

18
Iker

grepがPerl構文(-P)をサポートしていない場合、行を結合し、パターンに一致させてから、以下のように再度行を展開できます。

$ tr '\n' , < foo.txt | grep -o "begin.*end" | tr , '\n'
begin
Some text goes here.
end
2
kenorb