Live Chat!

grep multiple lines

* * * *   1 votos

August 9th, 2007 mysurface Posted in Text Manipulation, grep | Hits: 25447 |

You can grep multiple lines before or after matching the keywords. Here is a simple tips, that what I discover grep capable of. A is after, B is before.

Let say you have the message.txt shows as below:


Aug  5 02:43:12 zion kernel: [    0.000000] Zone PFN ranges:
Aug  5 02:43:12 zion kernel: [    0.000000]   DMA             0 ->     4096
Aug  5 02:43:12 zion kernel: [    0.000000]   Normal       4096 ->   130730
Aug  5 02:43:12 zion kernel: [    0.000000]   HighMem    130730 ->   130730
Aug  5 02:43:12 zion kernel: [    0.000000] early_node_map[1] active PFN ranges
Aug  5 02:43:12 zion kernel: [    0.000000]     0:        0 ->   130730
Aug  5 02:43:12 zion kernel: [    0.000000] DMI 2.3 present.

You can grep “DMA” with -B 1 and -A2

grep -B1 -A2 "DMA" message.txt

It will return

Aug  5 02:43:12 zion kernel: [    0.000000] Zone PFN ranges:
Aug  5 02:43:12 zion kernel: [    0.000000]   DMA             0 ->     4096
Aug  5 02:43:12 zion kernel: [    0.000000]   Normal       4096 ->   130730
Aug  5 02:43:12 zion kernel: [    0.000000]   HighMem    130730 ->   130730

It is useful to grep logs with multiple lines for one entry.

[中文翻译]

3 Responses to “grep multiple lines”

  1. This is damm cool. Never use this option before. Thanks for your tips.

  2. I use that feature all the time. I think grep & sed are my best friends. :)

  3. Could you please me how to do the same in HP-UX?
    Thank you in advance

Leave a Reply