¿Cuál es la forma más eficiente de convertir datos separados por tabulaciones como este?
a b c d cat
NULL NULL NULL NULL NULL
NULL NULL NULL d d
NULL NULL c NULL c
NULL NULL c d c; d
NULL b NULL NULL b
NULL b NULL d b; d
NULL b c NULL b; c
NULL b c d b; c; d
a NULL NULL NULL a
a NULL NULL d a; d
a NULL c NULL a; c
a NULL c d a; c; d
a b NULL NULL a; b
a b NULL d a; b; d
a b c NULL a; b; c
a b c d a; b; c; d
Algo parecido a esto:
a | b | c | d | cat
-----+------+------+------+-----------
NULL | NULL | NULL | NULL | NULL
NULL | NULL | NULL | d | d
NULL | NULL | c | NULL | c
NULL | NULL | c | d | c; d
NULL | b | NULL | NULL | b
NULL | b | NULL | d | b; d
NULL | b | c | NULL | b; c
NULL | b | c | d | b; c; d
a | NULL | NULL | NULL | a
a | NULL | NULL | d | a; d
a | NULL | c | NULL | a; c
a | NULL | c | d | a; c; d
a | b | NULL | NULL | a; b
a | b | NULL | d | a; b; d
a | b | c | NULL | a; b; c
a | b | c | d | a; b; c; d
Actualmente uso Notepad ++ de la siguiente manera:
- Convertir pestañas en espacios
- Alinear los datos manualmente
- Use el modo de columna para insertar las tuberías
El segundo paso es el más tedioso y preferiría tener al menos esta parte automatizada.
Nota: uso un navegador cuando trabajo y, a veces, tengo un editor de texto abierto al lado. La solución eficiente es la que requiere menos esfuerzo. Puedo usar:
- Notepad ++
- Editor de texto genérico con soporte para buscar / reemplazar regexp
- JavaScript escrito dentro de la consola del navegador
- Servicio web en línea
- PHP en línea de comando (
php -a
)
conversion
csv
text-formatting
ascii
Salman A
fuente
fuente
awk
guión simple .{{(⊃⍵)⍪⍉⍪↑¨↓⍉↑1↓⍵}s¨'⎕T'⎕T¨(s←1↓¨⊢⊂⍨⊢=⊃)¯1⌽⍵}
parece lo suficientemente bueno para trabajar, ¿eh?)Respuestas:
¿Cómo puedo convertir valores separados por tabulaciones en una tabla ASCII?
Yo uso Text Tables Generator para este tipo de tarea.
Pegué sus datos en esa página y creó la siguiente tabla:
Luego puede copiar esta salida (el generador ha realizado la mayor parte del trabajo duro), pegarla en el bloc de notas ++ y limpiar según corresponda.
fuente
Si necesita una solución de línea de comandos, también puede usar pandoc con el filtro pandoc-placetable .
Coloque su tabla
foo.txt
y ejecute:Lo que resulta en lo siguiente
output.md
:Para leer de STDIN, omita el
--file
argumento. Para imprimir en STDOUT, omita el-o
argumento.fuente
La idea de ruslan de usar el
column
comando Unix / Linux es buena, pero la línea de comando dada en su respuesta no funciona del todo. En primer lugar,column
no reconoce\t
(o\\t
) en la línea de comando como una pestaña. Si tienesbash
, puedes hacerDe lo contrario, puedes hacer
Pero incluso eso no responde la pregunta. Puedes obtener las barras verticales haciendo
que produce salida como
Agregar la línea de guión después del encabezado manualmente no es tan tedioso.
Si no tiene acceso a un sistema Unix / Linux completo, puede usar Cygwin o uno de los otros Me gusta de Unix para esto.
fuente
set ts=4
configuración de Vim ).