Aqui está uma kluge que funciona apenas porque é a última coluna:
-
printf
da primeira parte da linha (tudo exceto$failure
, incluindo o espaçamento), sem a nova linha à direita. -
echo "$failure" | fold -s -w $desired_width | sed -e "2,\$s/^/$spacing/"
Onde $desired_width
é a largura da coluna $failure
e $ espaçamento é um monte de espaços para fazer a segunda linha (terceira, etc.) começar no ponto certo. Você poderia gerar esses espaços facilmente com algo como spacing=$(echo $'\t' | pr -Te71)
. O 71 deveria funcionar, se eu contasse direito ...
Isso faz com que fold
realize uma quebra de linha, então sed
adiciona espaçamento (para alinhamento) à segunda coluna e subseqüentes. Quando impressa, a primeira linha se juntará à outra saída (devido à falta de nova linha).
Se eu quisesse fazer isso da maneira certa, o Perl tem vários módulos (por exemplo, Text::ASCIITable
, Text::SimpleTable
, Text::TabularDisplay
que deve ser capaz de fazer isso.