Esta é uma maneira indireta de fazer isso, mas funciona e possui alguns recursos não encontrados em column
.
Tabula levando em consideração linhas vazias e células vazias.
Pode juntar vários arquivos, lado a lado. por exemplo. Prefixar linhas de "F1" com linhas de "Nb"
Linhas em branco são exibidas como células vazias (para colar com vários arquivos)
Os arquivos podem ter comprimentos diferentes.
# Make test data file
echo -e "alpha\t1\t0.21085026\tok
beta\t4096\t0.0\tnext F1 line is blank
gamma\t\t-1.0\tinvalid" >F1
sed -n '=' F1 >Nb
echo -e "\tB\tC\textra F1 line" >>F1
# Set the positional parameters $1, $2
set Nb F1
{ echo -e "<html>\n<table border=1 cellpadding=0 cellspacing=0>"
paste "$@" |sed -e 's#\(.*\)#\x09\x09#
s#\x09# </pre></td>\n<td><pre> #g
s#^ </pre></td>#<tr>#
s#\n<td><pre> $#\n</tr>#'
echo -e "</table>\n</html>"
}|w3m -dump -T 'text/html'
A saída da versão tabulada:
┌───┬───────┬──────┬────────────┬───────────────────────┐
│ 1 │ alpha │ 1 │ 0.21085026 │ ok │
├───┼───────┼──────┼────────────┼───────────────────────┤
│ 2 │ beta │ 4096 │ 0.0 │ next F1 line is blank │
├───┼───────┼──────┼────────────┼───────────────────────┤
│ 3 │ │ │ │ │
├───┼───────┼──────┼────────────┼───────────────────────┤
│ 4 │ gamma │ │ -1.0 │ invalid │
├───┼───────┼──────┼────────────┼───────────────────────┤
│ │ │ B │ C │ extra F1 line │
└───┴───────┴──────┴────────────┴───────────────────────┘
Para obter uma versão sem frames, é necessário apenas remover o quadro. Isso é feito facilmente canalizando a saída um passo adiante, como mostrado pela linha de código a seguir, que é uma substituição para a última linha da versão tabulada acima.
# the replacement "new" last line
}|w3m -dump -T 'text/html' |sed -r '/^┌|├|└/d; s/^│ //g; s/ │$//g; s/ │ /│/g'
Aqui está a saída "nova": deixei os divisores verticais no lugar. Se você não quiser, apenas mude a última expressão sed para o que quiser.
1│alpha│1 │0.21085026│ok
2│beta │4096│0.0 │next F1 line is blank
3│ │ │ │
4│gamma│ │-1.0 │invalid
│ │B │C │extra F1 line
ou, substituindo o / │ /
por / /
(2 espaços), parece isso.
1 alpha 1 0.21085026 ok
2 beta 4096 0.0 next F1 line is blank
3
4 gamma -1.0 invalid
B C extra F1 line
E, é claro, os números principais estão lá apenas para demonstrar o arquivo "colar" lado a lado.