Have you considered: man awk ? You probably want to look at substr().
On Wed, Jun 13, 2018 at 2:10 PM, Rich Shepard <[email protected]> wrote: > I have many data files needing to be parsed and reformatted. The parsing > is easy using the print statement, but I'm struggling to find an awk string > manipulation function that reformats each field. Reading "Effective awk > Programming, 4th Ed." leaves me uncertain whether to use sub(), gsub(), > gensub() or something else. > > A trio of parsed lines look like this: > > 19881001 003000 0.75 > 19881001 010000 0.75 > 19881001 013000 0.75 > > What I want for output is this: > > 1988-10-01 00:30 0.75 > 1988-10-01 01:00 0.75 > 1988-10-01 01:30 0.75 > > The first field is a date, the second a time in hours and minutes > (seconds > are always zero), the third is the value associated with that date and > time. > > The split() function, as I understand it, will split the line and assign > each field to an array. That's not what I want. The sub() family will > substitute characters based on regex and string position; I don't want this > either. > > I think that what I need is grouping each field by the number of digits, > then back referencing each group and separating with the appropriate > character (- or :) and my attempts to do this have failed. > > Pointers to resources that will teach me what I need to learn are needed. > > TIA, > > Rich > > _______________________________________________ > PLUG mailing list > [email protected] > http://lists.pdxlinux.org/mailman/listinfo/plug > _______________________________________________ PLUG mailing list [email protected] http://lists.pdxlinux.org/mailman/listinfo/plug
