awk to transpose preceding row to 1st column of next rows

Gurus:

How can I transpose the output below to a format in which I can plot a graph to show VSZ memory usage by PIDs?

stdout:

Tue Jan 22 07:29:19 CUT 2013
42336296 1841272 java      wilyadm
21889232 438616 jlaunch    sidadm
42532994 414336 jlaunch    sidadm
Tue Jan 22 07:49:20 CUT 2013
42336296 1841252 java      wilyadm
21889232 438644 jlaunch    sidadm
42532994 414336 jlaunch    sidadm
Tue Jan 22 08:09:21 CUT 2013
42336296 1851460 java      wilyadm
21889232 438644 jlaunch    sidadm
42532994 414348 jlaunch    sidadm

awk output (col1=date;col2=pid;col3=VSZ;col4=process;col5=owner):

Tue Jan 22 07:29:19 CUT 2013 42336296 1841272 java      wilyadm
Tue Jan 22 07:29:19 CUT 2013 21889232 438616 jlaunch    sidadm
Tue Jan 22 07:29:19 CUT 2013 42532994 414336 jlaunch    sidadm

Tue Jan 22 07:49:20 CUT 2013 42336296 1841252 java      wilyadm
Tue Jan 22 07:49:20 CUT 2013 21889232 438644 jlaunch    sidadm
Tue Jan 22 07:49:20 CUT 2013 42532994 414336 jlaunch    sidadm

Tue Jan 22 08:09:21 CUT 2013 42336296 1851460 java      wilyadm
Tue Jan 22 08:09:21 CUT 2013 21889232 438644 jlaunch    sidadm
Tue Jan 22 08:09:21 CUT 2013 42532994 414348 jlaunch    sidadm

Please advise and thanks in advance. AWK RAWKS! :slight_smile:

One way:

awk '!/^[0-9]/{x=$0;if(NR!=1)print "";next}{print x,$0}' file
1 Like