mapfile -t a c for b in "${a[@]}" { d= IFS=\` for i in $b;{((c[d++]<${#i}))&&c[d-1]=${#i} } } for b in "${a[@]}" {(for z in $b { printf $y\%-$[c[x++]]s "$z" y=\ }) echo }
Note that non-ascii characters in the above source code will be escaped (such as \x9f).