I trimmed the trailing "," in your headings line as that breaks the CSV standard, but your format seems variable so...$ cat tmp/tmp.pl && perl tmp/tmp.pl #!/usr/bin/perl # use strict; use warnings; my $heading=readline(DATA); my @headings=split/,/,$heading; print $heading; my (@index,@values); while(<DATA>){ chomp; if (/^(\w+),\s*$/){ push @index,$1; } else{ @values=split/,/,$_; } } my $row = 0; for my $record (@index){ print join(",\t", $record, @values[(scalar(@headings) * $row) .. ( +(scalar(@headings) * $row) + $#headings -1)]),"\n"; $row++; } __DATA__ a, b, c, d aa, bb, aa, bb, 12,33,102,111,223,24,88,56,99,130,21,45,88,90,212,500 a, b, c, d aa, 12, 33, 102 bb, 223, 24, 88 aa, 99, 130, 21 bb, 88, 90, 212
In reply to Re^5: Cutting text from the end of the file and adding it to the top
by Utilitarian
in thread Cutting text from the end of the file and adding it to the top
by oysterperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |