Simpler Navigation for Servers and Operating Systems - Please Update Your Bookmarks
Completed: a much simpler Servers and Operating Systems section of the Community. We combined many of the older boards, so you won't have to click through so many levels to get at the information you need. Check the consolidated boards here as many sub-forums are now single boards.
If you have bookmarked forums or discussion boards in Servers and Operating Systems, we suggest you check and update them as needed.
Languages and Scripting
Showing results for 
Search instead for 
Did you mean: 

sh script to sort, group and sum a flat file

Go to solution
Super Advisor

sh script to sort, group and sum a flat file

I have the following flat file that is basically DATE #

Looks like this:

130426 246

130611 3

131011 28

131012 26
131131 117
131228 7

131231 117



I can sum up total, that is no problem.

But what I also what to do is group and sum by month.

So it will display:

1304 246

1306 3

1310 54

1312 124


Any help would be appreicated.




Dennis Handly
Acclaimed Contributor

Re: sh script to sort, group and sum a flat file

I'm assuming the data is aready sorted.  If not, use "sort -k1.1,1.4" and pipe to this awk script.

Something like this:

awk '
   sum = 0
   save_yymm = ""
yymm = substr($1, 1, 4)
if (yymm != save_yymm) {  # new month
   if (save_yymm != "")
      print save_yymm, sum
   save_yymm = yymm # save new
   sum = 0
sum += $2
   print save_yymm, sum
}' input-file