perl -F: -lane " print qq/-------/ if 1==$.; print join q/|/, @F, qq//; print q/--/ x @F, qq//; " < infile > outfile #### BEGIN { $/ = "\n"; $\ = "\n"; } LINE: while (defined($_ = )) { chomp $_; our(@F) = split(/:/, $_, 0); print '-------' if 1 == $.; print join('|', @F, ''); print '--' x @F, ''; }