Formatting Grep Output
by ColDon from LinuxQuestions.org on (#5H4M0)
As the output to a file from Grep cannot be formatted I would be grateful if anyone can help me here with some formatting I could do on the file using Sed. I have searched around but none of the examples I have found address what I wish to do, namely, combine into blocks all the matches found within each file. Here is a sample:
The output from my Grep search is:
/media/sda3/Z2/z101.txt:165:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:22:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:26:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:28:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:19:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:31:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:33:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:67:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:73:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:9:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:11:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:35:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:49:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:63:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z106.txt:10:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z106.txt:60:xxx xxx xxx xxx xxx xxx xxx
I would like to use Sed to format the above output by inserting a blank line at the appropriate place as follows:
/media/sda3/Z2/z101.txt:165:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:22:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:26:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:28:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:19:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:31:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:33:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:67:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:73:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:9:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:11:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:35:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:49:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:63:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z106.txt:10:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z106.txt:60:xxx xxx xxx xxx xxx xxx xxx
I have tried using "| sed G " on the grep output but that merely inserts a blank space between every single entry which is not what I need. Any help would be appreciated.
Thank you


The output from my Grep search is:
/media/sda3/Z2/z101.txt:165:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:22:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:26:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:28:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:19:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:31:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:33:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:67:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:73:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:9:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:11:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:35:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:49:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:63:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z106.txt:10:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z106.txt:60:xxx xxx xxx xxx xxx xxx xxx
I would like to use Sed to format the above output by inserting a blank line at the appropriate place as follows:
/media/sda3/Z2/z101.txt:165:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:22:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:26:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z102.txt:28:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:19:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:31:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:33:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:67:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z103.txt:73:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:9:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:11:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:35:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:49:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z105.txt:63:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z106.txt:10:xxx xxx xxx xxx xxx xxx xxx
/media/sda3/Z2/z106.txt:60:xxx xxx xxx xxx xxx xxx xxx
I have tried using "| sed G " on the grep output but that merely inserts a blank space between every single entry which is not what I need. Any help would be appreciated.
Thank you