Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add blank line between lines from different groups

I have a file A of the form (frequency,file name,code lines):

1 file_name1 code_line1
2 file_name2 code_line2
2 file_name2 code_line3
2 file_name3 code_line4
2 file_name3 code_line5
3 file_name4 code_line6
3 file_name4 code_line7
3 file_name4 code_line8

I want output B as:

1 file_name1 code_line1

2 file_name2 code_line2
2 file_name2 code_line3

2 file_name3 code_line4
2 file_name3 code_line5

3 file_name4 code_line6
3 file_name4 code_line7
3 file_name4 code_line8

Basically the file A contains file name and code lines from the file and the first field is the frequency, i.e., number of code lines in the file.

I am supposed to go through these code lines file wise. I am finding it tedious and it would be easier for me if there was a line gap between entries of different files, hence the desired output.

like image 745
xyz Avatar asked Oct 17 '25 16:10

xyz


1 Answers

Awk could do it:

awk '{if(NR > 1 && $2 != prev_two){printf "\n";} prev_two=$2; print $0}' A

A being the file name.

like image 108
Cameron Jordan Avatar answered Oct 20 '25 10:10

Cameron Jordan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!