awk
pode ser usado para formatar esses dados com sua função printf()
.
$ awk '{ printf("%-20s%-20s%s\n", $1, $2, $3) }' data.in
begining center end
beg12 cen12 end12
beg13 cen end
Isso pressupõe que os dados no arquivo são separados por espaço em branco.
Para dar a largura da coluna como um parâmetro:
$ cols=40
$ awk -v c="$cols" 'BEGIN { fmt=sprintf("%%-%ds%%-%ds%%s\n", c, c) } { printf(fmt, $1, $2, $3) }' data.in
begining center end
beg12 cen12 end12
beg13 cen end