How to output an array's content in columns in BASH.

Posted by Arko on Stack Overflow See other posts from Stack Overflow or by Arko
Published on 2010-06-10T13:41:09Z Indexed on 2010/06/13 22:22 UTC
Read the original article Hit count: 257

Filed under:
|
|
|
|

I wanted to display a long list of strings from an array.

Right now, my script run through a for loop echoing each value to the standard output:

for value in ${values[@]}
do
  echo $value
done

Yeah, that's pretty ugly! And the one column listing is pretty long too...

I was wondering if i can find a command or builtin helping me to display all those values in columns, like the ls command does by default when listing a directory (ls -C).

[Update]

Losing my brain with column not displaying properly formatted columns, here's more info:

The values: $ values=( 01----7 02----7 03-----8 04----7 05-----8 06-----8 07-----8 08-----8 09---6 10----7 11----7 12----7 13----7 14-----8 15-----8 16----7 17----7 18---6 19-----8 20-----8 21-----8) (Notice the first two digits as an index and the last one indicating the string length for readability)

The command: echo " ${values[@]/%/$'\n'}" | column

The result: bad columns

Something is going wrong...

© Stack Overflow or respective owner

Related posts about arrays

Related posts about bash