die "usage format-pre-post-nbr-SPACE.pl \n" if $#ARGV < 4; $valid_line=$nbr_max_tab=0;$max[0]=0;$nbr_line=$ARGV[3]; open(F0, $ARGV[0]); open(F1, ">$ARGV[1]"); while() { if (/[a-zA-Z0-9]/) { $valid_line++; $max_tab=1; while (/\t+/g) { $max[$max_tab] = $+[0] if $max[$max_tab] < $+[0] || $max[$max_tab] eq ""; $max_tab++; } $nbr_max_tab = $max_tab if $nbr_max_tab < $max_tab; } } $valid_line--;$max_line=$nbr_line+$valid_line; seek F0,0,0; while() { s/\r//;chop; if (/[a-zA-Z0-9]/) { $max_tab=1; print F1 "0" x ($ARGV[2] - length($nbr_line)), $nbr_line, " " x $ARGV[4]; while (/[^\t]+/g) { print F1 substr($_, $-[0], ($+[0] - $-[0])), " " x ($max[$max_tab++] - ($+[0] - $-[0])); } print F1 " " x $ARGV[4], "{", "0" x ($ARGV[2] - length($ARGV[3])), $ARGV[3], " .. ", "0" x ($ARGV[2] - length($max_line)), $max_line, "}"; print F1 "\n"; $nbr_line++; } } close F0;close F1;