Tengo un archivo con columnas con spearated tab
.
Tengo un archivo cuando algunas filas tienen celdas vacías (al principio, en el medio).
En tales casos column -t -s $'\t'
simplemente falla:
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
salida de columna:
$ cat in.tsv | column -t -s $'\t'
A B C D
b1 d1
d2
a3 d3
en lugar de:
A B C D
b1 d1
d2
a3 d3
¿Podría recomendarme cómo hacer el formato de línea de comando TSV? (en modo Unix, quiero canalizar la salida del programa en formateador, como column
)
¿Alguna forma de "arreglar" el column
enfoque? Tal vez otra herramienta?
text-processing
csv
spreadsheet
Grzegorz Wierzowiecki
fuente
fuente
\1
con una cuerda vacía?\(^\)
solo coincide con una cadena vacía, anclada al comienzo de la línea.\1
"produce una copia" de esa cadena vacía.El comando anterior es para tubería, así que reemplácelo con espacio de tabulación.
Solo necesita reemplazar las columnas vacías con un espacio en blanco y canalizar la salida al comando que ya está utilizando.
fuente