Aqui está uma kluge que funciona apenas porque é a última coluna:
-
printfda 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.