Eu tenho arquivo com colunas spearated com tab
.
Eu tenho arquivo quando algumas linhas têm células vazias (no início, no meio).
Nesses casos, column -t -s $'\t'
simplesmente falha:
Entrada:
$ echo -e 'A\tB\tC\tD\n\tb1\t\td1\n\t\t\td2\na3\t\t\td3' > in.tsv
$ hexdump -C in.tsv
00000000 41 09 42 09 43 09 44 0a 09 62 31 09 09 64 31 0a |A.B.C.D..b1..d1.|
00000010 09 09 09 64 32 0a 61 33 09 09 09 64 33 0a |...d2.a3...d3.|
0000001e
saída da coluna:
$ cat in.tsv | column -t -s $'\t'
A B C D
b1 d1
d2
a3 d3
ao invés de:
A B C D
b1 d1
d2
a3 d3
Você poderia recomendar como formatar a linha de comando TSV? (da maneira Unix, eu quero canalizar a saída do programa para o formatador, como column
)
Alguma maneira de "consertar" a column
abordagem? Talvez outra ferramenta?
text-processing
csv
spreadsheet
Grzegorz Wierzowiecki
fonte
fonte
\1
com string vazia?\(^\)
sozinho corresponde a uma sequência vazia, ancorada ao início da linha.\1
"produz uma cópia" dessa string vazia.O comando acima é para pipe, então substitua-o por tabspace.
Você só precisa substituir colunas vazias por um espaço em branco e canalizar a saída para o comando que você já está usando.
fonte