Search code examples
bashawksedpretty-print

How to pretty print a comma delimited file?


Below is my file. I am trying to maintain constant width between my output so that all pipe symbols are one below the other and it looks like table format. How can I achieve that? I also need to have the same format when I mail the output.

cat file.txt
name,score card,ID
Jack,Available,YES
Jen,NA,NO
Jerry,Available,YES
Padula,NA,YES
Mackenzi,NA,NO

sed 's/,/\t|\t/g' c.txt
name    |       score card      |       ID
Jack    |       Available       |       YES
Jen     |       NA      |       NO
Jerry   |       Available       |       YES
Padula  |       NA      |       YES
Mackenzi        |       NA      |       NO

==I want==
name      |       score card      |       ID
Jack      |       Available       |       YES
Jen       |       NA              |       NO
Jerry     |       Available       |       YES
Padula    |       NA              |       YES
Mackenzi  |       NA              |       NO

Solution

  • $ sed 's/,/,|,/g' file | column -t -s,
    name      |  score card  |  ID
    Jack      |  Available   |  YES
    Jen       |  NA          |  NO
    Jerry     |  Available   |  YES
    Padula    |  NA          |  YES
    Mackenzi  |  NA          |  NO