Un archivo TSV es un archivo de texto que contiene una tabla. Cada línea es una fila y, dentro de la línea, un carácter tabulador marca dónde acaba una columna y empieza la siguiente. Eso es el formato entero. No hay declaración de cabecera, ni sistema de tipos, ni esquema, ni metadatos — que es a la vez la razón de que lleve cuarenta años vivo y la razón de que se rompa como se rompe.
Ábrelo en un editor de texto y verás algo así, donde cada hueco es un tabulador:
key en es
item_mug Ceramic mug Taza de cerámica
item_tee T-shirt Camiseta
Tres columnas, tres filas, y la primera fila es una cabecera solo porque todo lo que lee el archivo se ha puesto de acuerdo en que lo sea.
Qué contiene de verdad un archivo TSV
Cuatro cosas deciden si dos programas se entienden sobre un mismo archivo:
- El delimitador. Un tabulador,
U+0009. Uno por frontera: dos tabuladores seguidos significan una celda vacía entre ellos, no más separación. - El fin de línea.
LFen Unix y macOS,CRLFen Windows. Un archivo escrito en uno y leído en el otro suele ganar un retorno de carro invisible al final de cada última columna. - La codificación. Hoy casi siempre UTF-8. Si el archivo salió de una herramienta antigua de Windows puede ser windows-1252, y leerlo como UTF-8 convierte cada tilde en un símbolo raro.
- La marca de orden de bytes. Tres bytes al principio del todo que anuncian UTF-8. Casi ninguna herramienta la necesita; Excel, en la práctica, sí.
Nada de eso está escrito dentro del archivo. Las cuatro cosas las tiene que adivinar lo que lo abra, y ahí empieza casi toda la corrupción.
Dónde se acaba el formato
La convención original de valores separados por tabuladores no tiene reglas de entrecomillado. Una celda sencillamente no puede contener un tabulador ni un salto de línea, porque no habría forma de distinguirlo de una frontera de verdad.
En la práctica, las herramientas tomaron prestado el entrecomillado del CSV: se envuelve el valor en comillas dobles y se duplica cualquier comilla que ya lleve dentro.
key note
item_mug "Dos tamaños: pequeño y grande"
Funciona, y casi todos los analizadores lo aceptan, pero es una costumbre, no un estándar — conviene saberlo antes de apoyarse en ello para un archivo que tiene que leer el software de otra persona. Cuando una celda necesita de verdad llevar un tabulador, lo prudente suele ser quitar el tabulador.
Por qué tabuladores y no comas
El texto escrito por personas está lleno de comas. Taza, de cerámica, grande es un nombre de producto y tres columnas CSV salvo que algo lo entrecomille bien, y hay bastantes cosas que no lo hacen.
El texto escrito por personas casi nunca lleva tabuladores. Nadie escribe uno dentro de una frase, y la mayoría de los campos de formulario ni siquiera lo admiten. Así que un archivo TSV normalmente no necesita entrecomillado ninguno: menos reglas que un analizador pueda equivocarse en aplicar, archivos que siguen siendo legibles en un editor de texto, y columnas que se alinean solas en pantalla.
Por eso los datos separados por tabuladores son lo normal en bioinformática, en las exportaciones de localización de videojuegos, en las tuberías de registros y en todo lo que se procesa con cut, awk o sort.
La contrapartida: un tabulador es invisible. A un CSV al que le falta una coma se le nota al momento. A un TSV al que le falta un tabulador se le ve una celda un poco ancha.
Las cuatro cosas que rompen un TSV
Lo abrió una hoja de cálculo. Esta es la gorda. Excel importa 03-04 como el 4 de marzo, le quita el cero de delante a 00891 y pinta un identificador largo en notación científica. Guardas, y los valores originales ya no están.
A una celda se le coló un tabulador. Casi siempre pegado desde otro sitio. Esa fila pasa a tener una columna más que las demás, y todos los valores posteriores al corte caen en el sitio equivocado.
Espacios invisibles. Un espacio final detrás de una clave, un espacio duro donde iba uno normal, un espacio ideográfico en una cadena en japonés. Cualquiera de ellos hace fallar una búsqueda mientras se ve perfectamente correcto.
Fines de línea mezclados. Un archivo editado en dos plataformas acaba con unas líneas en LF y otras en CRLF. Unos analizadores lo llevan bien; otros dejan un \r colgando en la última columna de la mitad de las filas.
Abrirlo sin estropearlo
La regla es simple: no uses una hoja de cálculo como editor de TSV. El oficio de una hoja de cálculo es interpretar valores, y la interpretación es justo lo que no quieres aquí.
Usa un editor de texto para leer el archivo o uno que entienda columnas para cambiarlo. El editor de aquí muestra espacios y tabuladores en la rejilla. Las descargas TSV usan UTF-8 y tabuladores, y muestran el fin de línea de registros, el BOM y el salto final efectivos antes de exportar. Las comillas se reconstruyen según necesidad. Si el TSV literal no puede representar un valor, como un tabulador dentro de una celda, el diálogo bloquea esa salida y ofrece conversión explícita a campos entrecomillados cuando permite conservar la tabla.
Si los datos tienen que acabar en otro sitio, convertir suele ser más seguro que volver a guardar: mira TSV a CSV, TSV a JSON o TSV a Excel.