How can I align the columns of tables in Bash?

user1709294 picture user1709294 · Oct 7, 2012 · Viewed 106.5k times · Source

I'd like to output a table format text. What I tried to do was echo the elements of an array with '\t', but it was misaligned.

My code

for((i=0;i<array_size;i++));
do
   echo stringarray[$i] $'\t' numberarray[$i] $'\t' anotherfieldarray[$i]
done;

My output

a very long string..........     112232432      anotherfield
a smaller string         123124343     anotherfield

Desired output

a very long string..........     112232432      anotherfield
a smaller string                 123124343      anotherfield

Answer

P.P picture P.P · Oct 7, 2012

Use column command:

column -t -s' ' filename