# Example: uncsv -d "\t" file.csv | awk -F "\t" -f flat.awk # Assumes first line is a header with field names. NR == 1 { for (i = 1; i <= NF; i++) { header[i] = $i if (length($i) > maxlen) { maxlen = length($i) } } maxlen++ } NR > 1 { for (i = 1; i <= NF; i++) { printf "%-" maxlen "s %s\n", header[i] ":", $i } printf "\n" }