Sunday, 8 September 2013

Reversing groups of lines in bash

Reversing groups of lines in bash

I'm looking for an elegant method for reversing a text file content, not
just line by line (as tac do) but by groups of line (sections). The
following example should be exhaustive:
Original file content:
----------------------------------------------------------------
date time hostname cpu ram / /opt
----------------------------------------------------------------
2013/09/08 15:30:00 server1 20% 30% 50% 70%
2013/09/08 15:30:00 server2 10% 21% 49% 72%
2013/09/08 15:30:00 server3 15% 40% 40% 75%
----------------------------------------------------------------
----------------------------------------------------------------
date time hostname cpu ram / /opt
----------------------------------------------------------------
2013/09/08 15:35:00 server1 15% 30% 50% 70%
2013/09/08 15:35:00 server2 18% 21% 49% 72%
2013/09/08 15:35:00 server3 15% 40% 40% 75%
----------------------------------------------------------------
----------------------------------------------------------------
date time hostname cpu ram / /opt
----------------------------------------------------------------
2013/09/08 15:40:00 server1 20% 30% 50% 70%
2013/09/08 15:40:00 server2 15% 21% 49% 72%
2013/09/08 15:40:00 server3 20% 40% 40% 75%
----------------------------------------------------------------
Desidered output:
----------------------------------------------------------------
date time hostname cpu ram / /opt
----------------------------------------------------------------
2013/09/08 15:40:00 server1 20% 30% 50% 70%
2013/09/08 15:40:00 server2 15% 21% 49% 72%
2013/09/08 15:40:00 server3 20% 40% 40% 75%
----------------------------------------------------------------
----------------------------------------------------------------
date time hostname cpu ram / /opt
----------------------------------------------------------------
2013/09/08 15:35:00 server1 15% 30% 50% 70%
2013/09/08 15:35:00 server2 18% 21% 49% 72%
2013/09/08 15:35:00 server3 15% 40% 40% 75%
----------------------------------------------------------------
----------------------------------------------------------------
date time hostname cpu ram / /opt
----------------------------------------------------------------
2013/09/08 15:30:00 server1 20% 30% 50% 70%
2013/09/08 15:30:00 server2 10% 21% 49% 72%
2013/09/08 15:30:00 server3 15% 40% 40% 75%
----------------------------------------------------------------
Thank you all!

No comments:

Post a Comment