Can it be done more simple? zcat D.gz | perl -ne 's/\s+/\n/g; open(OUT,">","out".(++$out)); print OUT' ; paste out* | pigz >Dt.gz Chop CSV into fields multi file paste paste out1 out2 | paste - out3