For the sample now added to your question:
perl -MText::CSV -ne '
if (/^(\S+)\s+(real)\s+(\S+)\s+(user)\s+(\S+)\s+(sys)/) {
push @header, $2,$4,$6;
push @values, $1,$3,$5;
} elsif (/^\s*(\d+)\s+(.*)/) {
push @header, $2;
push @values, $1;
}
END {
$csv = Text::CSV->new;
$csv->say(*STDOUT, \@header);
$csv->say(*STDOUT, \@values);
}'
Which gives:
real,user,sys,"maximum resident set size","average shared memory size","average unshared data size","average unshared stack size","page reclaims","page faults",swaps,"block input operations","block output operations","messages sent","messages received","signals received","voluntary context switches","involuntary context switches","instructions retired","cycles elapsed","peak memory footprint"
57.03,212.49,16.24,88588288,0,0,0,5531,2,0,0,0,0,0,0,1,3337714,2273379580064,693450611012,87999936