Ordenar líneas: ordena texto alfabéticamente online
Pega una lista, elige un orden, y la obtienes ordenada. Con o sin distinción de mayúsculas, ascendente o descendente, con natural sort para nombres de archivo y cadenas de versión.
¿Qué es la herramienta de ordenar líneas?
Una herramienta gratuita que se ejecuta en el navegador, toma un bloque de texto, lo divide por saltos de línea, ordena las líneas y te devuelve el resultado. Sin registro, sin subida, nada sale de tu máquina. Pega, haz clic, copia.
Equivale a ejecutar sort en la línea de comandos, salvo que aquí no tienes que pelearte con LC_COLLATE, con el hecho de que macOS trae un sort BSD antiguo, o con que Windows directamente no tiene sort a no ser que instales Git Bash. Tres casillas cubren los casos que realmente quieres: ascendente o descendente, con o sin distinción de mayúsculas, y natural sort para que nombres como file2 aparezcan antes que file10.
Si alguna vez has pegado una lista de dependencias en package.json y te has preguntado por qué npm las reordenó en la siguiente instalación, esta herramienta reproduce lo que hace npm 7+ para que el diff salga vacío cuando corra CI.
Cómo funciona el sort por dentro
Por debajo, la herramienta usa la API Intl.Collator del navegador. Eso te da una función de comparación que entiende Unicode tal como la define el Unicode Collation Algorithm (UTS #10), no una comparación pura por codepoint. La diferencia práctica: Intl.Collator sabe que é se ordena junto a e, que la ß alemana compara igual que ss en el nivel primario, y que mayúsculas y minúsculas solo se distinguen en el nivel terciario.
Sort lexicographic y sort que respeta la configuración regional no son lo mismo. Un sort puramente por codepoint (lo que da LC_ALL=C sort) coloca todas las mayúsculas antes que todas las minúsculas, porque A es U+0041 y a es U+0061. Un sort con la collation por defecto de Unicode las intercala: A < a < B < b < C. Por defecto usamos el orden que respeta el idioma, porque coincide con lo que la gente espera al pulsar Ordenar A-Z en Excel o Google Sheets. Marca la casilla de distinción de mayúsculas para volver al orden estilo codepoint.
Natural sort es el tercer eje. Con esta opción activa, file2.log aparece antes que file10.log porque los números embebidos se comparan como números, no carácter a carácter. Wikipedia tiene una buena explicación del orden natural si quieres el contexto. La implementación usa la opción numeric: true de Intl.Collator, la misma primitiva que usan Finder, el Explorador de Windows y las versiones recientes de GNU sort -V.
Cómo ordenar líneas en tres pasos
Un panel de entrada, un panel de salida. Todo se ejecuta en local; cierras la pestaña y tu texto desaparece.
- 1
Pega tus líneas
Suelta tu lista en el editor, un elemento por línea. Las líneas en blanco al final no son problema. Funcionan tanto CRLF como LF; la salida se normaliza a LF salvo que indiques lo contrario. El botón Sample rellena el editor con una pequeña lista variada por si quieres ver las tres opciones en acción primero.
- 2
Elige las opciones de sort
Elige Ascendente o Descendente, activa Distinguir mayúsculas si necesitas que Apple aparezca antes que banana, y activa Natural sort cuando haya nombres de archivo o versiones. Eliminar líneas en blanco descarta filas vacías antes de ordenar; Eliminar duplicados colapsa repeticiones.
- 3
Copia el resultado ordenado
Pulsa Sort. El resultado aparece en el panel de salida. Usa Copiar para llevarlo al portapapeles, o Descargar para guardarlo como un fichero .txt. El contador de líneas en la cabecera muestra cuántas filas salieron, lo cual es útil cuando activas la deduplicación y quieres saber cuántos duplicados se han eliminado.
Cuándo ordenar líneas es la herramienta adecuada
Ordenar una lista de emails antes del envío de una campaña
Marketing pega un CSV de emails de suscriptores en la herramienta de campañas, pero la lista llegó en orden de registro. Ordénala alfabéticamente aquí primero, con la opción sin distinción de mayúsculas activa (porque la parte local de los emails es, en la práctica, insensible a mayúsculas), y luego dedup. La importación en la herramienta de campañas será más rápida y detectarás un dominio mal escrito como gmial.com al instante porque queda junto al bloque legítimo de gmail.com.
Alfabetizar nombres de clases CSS u orden de atributos HTML
Algunos equipos imponen nombres de clases en orden alfabético dentro de los atributos class="..." para que los diffs de los PR se mantengan limpios. Pega el valor, ordénalo, pégalo de vuelta. El mismo truco vale para el orden de atributos HTML cuando un linter protesta, o para ordenar a mano clases utilitarias de Tailwind cuando no tienes prettier-plugin-tailwindcss instalado en el repo.
Ordenar un .gitignore para que los futuros PR den un diff limpio
Un .gitignore al que todo el mundo añade líneas se convierte en un cajón desastre. Ordénalo alfabéticamente una vez, haz commit de eso, y a partir de ahí las nuevas entradas caerán en lugares evidentes y el diff tendrá sentido para los revisores. Lo mismo aplica a .dockerignore, .eslintignore, y al array files en tsconfig.json cuando los equipos lo mantienen.
Limpiar una lista de TODO pegada del chat
Slack y Discord pegan listas con un orden raro, líneas a medio terminar y duplicados de gente que dijo lo mismo dos veces. Pega, activa Eliminar líneas en blanco y Eliminar duplicados, ordena. Obtienes una lista limpia y ordenada para llevar a tu gestor de tareas.
Ordenar una lista de códigos de país, aeropuerto o moneda
Códigos de país ISO 3166, códigos de aeropuerto IATA, códigos de moneda ISO 4217: todos viven en ficheros de lookup que se benefician de estar ordenados. Aquí natural sort no hace falta porque los códigos son de longitud fija, pero la insensibilidad a mayúsculas sí importa porque algunas fuentes mezclan USD con usd. Ordena, dedup, pega de vuelta en la tabla de lookup.
Ordenar una lista de dependencias de package.json
Las claves de dependencias de package.json las alfabetiza npm 7+ en cada instalación, pero si trabajas en un proyecto fijado todavía a npm 6 (o yarn 1) el orden no cambiará automáticamente. Pega las claves de dependencias, ordena A-Z, pega de vuelta. Tu próximo PR no llevará un commit de reordenación de 200 líneas encima del cambio real.
Referencia rápida de ordenar líneas
Una chuleta breve de las opciones de sort que esta herramienta expone y los casos límite que cubren.
| Topic | What this tool does |
|---|
| Lexicographic vs collation | El sort lexicographic (por codepoint) ordena por valor Unicode crudo: A (U+0041) antes que a (U+0061). El sort por collation sigue el Unicode Collation Algorithm e intercala las mayúsculas y minúsculas. Esta herramienta usa collation por defecto; marca Distinguir mayúsculas para orden por codepoint. |
|---|
| Sensibilidad a mayúsculas | Por defecto no distingue: apple, Apple y APPLE comparan iguales. Cambia a sensible para ordenar A < a < B < b en el nivel terciario de collation, o para orden por codepoint puro si combinas con la configuración regional C. |
|---|
| Natural sort | Activado, file2 < file10 porque 2 y 10 se comparan como números. Desactivado, file10 < file2 porque 1 (U+0031) compara menor que 2 (U+0032) carácter a carácter. Úsalo para nombres de archivo, cadenas de versión y cualquier lista con números embebidos. |
|---|
| Respeto al idioma | El sort respeta la configuración regional de la página: la é ordena junto a e en francés, la ä alemana ordena como ae en orden de guía telefónica DIN 5007-2, etc. El comando sort de unix hace lo mismo si LC_COLLATE está fijado; LC_ALL=C sort retrocede al orden por codepoint, que es más rápido pero trata los acentos como letras ajenas. |
|---|
| Tratamiento de líneas en blanco | Las líneas vacías ordenan antes que cualquier línea no vacía en orden ascendente, así que se agrupan arriba. Marca Eliminar líneas en blanco para descartarlas por completo. Un salto de línea final al final de la entrada se conserva tal cual para que la salida pase por cat y similares sin sorpresas. |
|---|
| Estabilidad | El sort es estable: las líneas que comparan iguales bajo tus ajustes mantienen su orden relativo original. Esto importa cuando ordenas por un prefijo o en modo sin distinguir mayúsculas y quieres preservar el orden de entrada dentro de un grupo de empate. Tanto V8 (Chrome, Edge, Node) como SpiderMonkey (Firefox) garantizan Array.prototype.sort estable desde 2019. |
|---|
| Finales de línea (LF vs CRLF) | La entrada se divide en \r\n, \n y \r. La salida se une con \n por defecto, así pega limpiamente en flujos de Linux y macOS. Si necesitas CRLF para una herramienta de Windows, pega el resultado en un editor que reconozca Windows y guarda con el final de línea que quieras. |
|---|
| Codificación | La entrada se trata como UTF-8 (el texto en el navegador ya viene decodificado). Un BOM UTF-8 al inicio se conserva en la primera línea si está presente; si quieres quitarlo, la herramienta hermana whitespace-cleaner lo elimina. |
|---|
Ordenar líneas: preguntas frecuentes
¿Cuál es el orden por defecto?
Ascendente con respeto al idioma, usando Intl.Collator del navegador con la configuración regional de la página. Esto significa A < a < B < b tal como ordenan Excel y Google Sheets, no el orden por codepoint donde toda mayúscula va antes que toda minúscula. Si quieres el orden por codepoint, marca la opción Distinguir mayúsculas, que cambia el collator a una comparación estricta de nivel terciario y te da el mismo orden que LC_ALL=C sort.
¿El sort distingue mayúsculas o no?
No las distingue por defecto. Apple, apple y APPLE colapsan a la misma clave, así que se agrupan en la salida y su orden relativo es el del primero que apareció en la entrada (el sort es estable). Marca Distinguir mayúsculas para separarlos; en ese caso APPLE, Apple y apple se ordenan como tres valores distintos según el nivel terciario de la collation por defecto de Unicode.
¿Soporta natural sort para nombres como file2 antes que file10?
Sí. Activa la opción Natural sort y los números embebidos se comparan como números, así que file2.log aparece antes que file10.log, y v1.9 antes que v1.10. La implementación es la opción numeric: true de Intl.Collator, la misma primitiva que usan Finder de macOS y el Explorador de Windows para ordenar nombres de archivo.
¿Puedo ordenar al revés (Z a A)?
Sí. Elige Descendente en el conmutador de orden. El sort se ejecuta primero en orden ascendente y luego se invierte, lo que preserva la estabilidad entre claves iguales: si dos líneas comparan iguales bajo tus ajustes de mayúsculas y natural sort, mantienen su orden relativo original incluso después del reverso. Eso importa cuando ordenas por una clave parcial, como la primera columna de un TSV.
¿Qué pasa con las líneas duplicadas y las en blanco?
Por defecto se mantienen ambas. El sort es estable, así que los duplicados conservan su orden relativo original, y las líneas en blanco quedan agrupadas arriba en orden ascendente (ordenan antes que cualquier cadena no vacía). Marca Eliminar líneas en blanco para descartarlas antes de ordenar, y Eliminar duplicados para colapsar líneas iguales en una sola. Para una pasada de dedup dedicada con más opciones, usa Eliminar líneas duplicadas.
¿Hay límite de tamaño?
Hasta unas 100.000 líneas se procesan en menos de un segundo en el navegador. Pasadas las 500.000 empiezas a notarlo, sobre todo porque renderizar el panel de resultado (no el sort en sí) se vuelve costoso. Para ficheros de varios millones de líneas, el comando sort de unix con LC_ALL=C sort -u file.txt es más rápido y trabaja fuera de memoria. El manual de sort de GNU coreutils cubre los flags que vale la pena conocer.
Privacidad y cómo funciona esto
Tu texto nunca sale de tu navegador. La división, la comparación y el join se ejecutan en local. Sin analítica sobre tu entrada, sin logs, sin viaje al servidor. La comparación en sí es el Intl.Collator nativo del navegador, que implementa el Unicode Collation Algorithm (UTS #10). Si buscas lectura de fondo, Wikipedia tiene una visión general sólida de los algoritmos de ordenamiento en general.