Do it with sort - easy. The difficult part may be in omitting the headers but that is probably an OMIT when you do a subsring search in the first few bytes looking for 'CURRENT'.
Unless when you need a new output file when you get a new header? How many columns are there? This is important as you can only parse 100 columns. If you have more than `00 then you need to parse the first 99 then parse the remaining columns into 1 field which can be parsed in a second pass of the data. At least, I think that is how you go about it. A Rexx program would do this in next to no time.