Tri de lignes, gratuit
Triez, inversez, dédupliquez ou mélangez aléatoirement des lignes de texte.
Mode de tri
À propos du tri de lignes
Le tri de lignes organise du texte en comparant chaque ligne selon un ordre choisi. Le tri alphabétique est utile pour les listes, glossaires et annuaires. Le tri numérique traite chaque ligne comme un nombre et la classe par valeur. Le tri par longueur regroupe les entrées courtes et longues, pratique pour la mise en forme et la mise en page.
Cet outil permet aussi de supprimer les lignes en double, retirer les lignes vides, nettoyer les espaces, inverser l'ordre ou mélanger aléatoirement les lignes. Tout le traitement est instantané et s'effectue dans votre navigateur.
Usages courants
- Classer alphabétiquement une liste de noms, d'articles ou d'entrées
- Trier des valeurs de colonnes CSV ou des entrées de journaux
- Supprimer les doublons d'un fichier ou d'un jeu de données
- Tirer au sort une liste pour des loteries ou l'attribution aléatoire en jeu
- Trier des nombres du plus petit au plus grand, ou l'inverse
- Nettoyer des données en supprimant espaces et lignes vides
Questions fréquentes
Comment fonctionne le tri numérique ?
Le tri numérique extrait le nombre en tête de chaque ligne et classe par cette valeur. Les lignes qui ne commencent pas par un nombre sont placées à la fin. Cela signifie que « 9 articles » passe avant « 10 articles » (contrairement au tri alphabétique, où « 10 » précéderait « 9 »).
Que fait « Supprimer les doublons » ?
Cette option supprime les lignes qui apparaissent plus d'une fois, en ne conservant que la première occurrence. Combinée avec « Insensible à la casse », les lignes qui ne diffèrent que par la casse sont également traitées comme des doublons.
Le mélange est-il vraiment aléatoire ?
Le mélange utilise l'algorithme de Fisher-Yates avec Math.random(). Il convient à un usage courant comme randomiser des listes ou tirer des noms au sort. Il n'est pas cryptographiquement sûr · pour un aléa à enjeux de sécurité, utilisez un outil dédié.
Qu'est-ce que le tri de lignes ?
Le tri de lignes est l'opération qui réordonne les lignes d'un fichier texte ou d'une liste selon une règle choisie. La règle peut être lexicographique (comparer les caractères de gauche à droite par leur point de code Unicode), numérique (extraire un nombre de tête et comparer les valeurs), basée sur la longueur (comparer les nombres de caractères), ou aléatoire (un mélange Fisher-Yates qui produit une permutation uniformément aléatoire). Chaque règle répond à une question différente sur vos données.
Cet outil expose huit modes de tri (A à Z, Z à A, numérique ascendant, numérique descendant, plus court d'abord, plus long d'abord, mélange, inverser) plus quatre options activables (insensible à la casse, supprimer les espaces, supprimer les doublons, supprimer les lignes vides). Les combinaisons couvrent les workflows quotidiens de nettoyage de listes qui nécessitaient autrefois une commande Bash avec sort, uniq, awk et un pipeline shell. Maintenant vous collez les lignes, cliquez sur un mode et quelques cases à cocher, et lisez le résultat.
Tout le calcul a lieu dans votre navigateur en utilisant Array.prototype.sort intégré de JavaScript, qui utilise TimSort (un hybride de tri par fusion et tri par insertion, stable et O(n log n) au pire) dans V8, JavaScriptCore et SpiderMonkey depuis 2018. Pour les listes de moins d'un million de lignes, l'opération se termine plus vite que le temps qu'il vous faut pour relâcher le bouton de la souris.
Ce qu'il y a dans le trieur
L'interface empile trois contrôles : une zone de texte d'entrée où vous collez vos lignes, une rangée de huit boutons de mode qui mettent en surbrillance la sélection active, et une rangée de quatre cases à cocher pour les options de déduplication et de rognage. En dessous se trouve le bouton d'action Trier les lignes, qui produit la zone de texte de sortie en lecture seule et met à jour le compteur de lignes en dessous.
Les compteurs de lignes au-dessus et en dessous de l'entrée et de la sortie vous permettent de vérifier l'opération d'un coup d'œil : si vous avez commencé avec 1 234 lignes et coché Supprimer les doublons, le compteur de sortie vous dit immédiatement combien de doublons ont été supprimés. Ce raccourci est plus rapide que d'écrire un script Python ou AWK ponctuel pour la même tâche.
Trois actions enveloppent le bas : Copier le résultat écrit la sortie dans votre presse-papiers via l'API Clipboard, Télécharger .txt enregistre un fichier texte UTF-8 avec des fins de ligne LF, et Effacer vide les deux zones de texte. Aucun historique n'est conservé, aucun paramètre ne persiste, et rafraîchir la page rétablit l'outil à son état A-à-Z par défaut.
Histoire et contexte
Trieurs de cartes perforées Hollerith (1890)
Le trieur de cartes perforées d'Herman Hollerith, construit pour le recensement américain de 1890, déposait mécaniquement chaque carte dans l'un des 12 casiers en fonction de la position d'un trou perforé. Les opérateurs faisaient passer les cartes dans le trieur plusieurs fois, une fois par chiffre, pour produire un tri numérique complet. La technique s'appelait tri par base, et elle a sous-tendu l'informatique d'entreprise pendant les 60 années suivantes. IBM, fondé sous le nom de Computing-Tabulating-Recording Company en 1911, est issu directement des machines d'Hollerith.
John von Neumann décrit le tri par fusion (1945)
Dans un rapport interne de 1945 sur l'EDVAC, John von Neumann a décrit le tri par fusion, le premier algorithme écrit pour un ordinateur à programme enregistré. L'idée est récursive : divisez la liste en deux, triez chaque moitié, puis fusionnez les deux moitiés triées en prenant à plusieurs reprises le plus petit élément de tête. Le tri par fusion reste un exemple manuel de diviser-pour-régner et est la base de TimSort, l'algorithme que V8 utilise pour Array.prototype.sort aujourd'hui.
Tony Hoare invente le tri rapide (1959)
Tony Hoare, alors âgé de 25 ans et en visite à l'Université d'État de Moscou pour apprendre le russe, a conçu le tri rapide en 1959 alors qu'il essayait de trier une liste de mots russes par rapport à un dictionnaire anglais. L'algorithme choisit un pivot, partitionne la liste autour de lui et récurse de chaque côté. Le cas moyen est O(n log n), le pire cas O(n carré), mais en pratique il surpasse le tri par fusion grâce à la localité de cache. Hoare a remporté le prix Turing en 1980.
J.W.J. Williams introduit le tri par tas (1964)
J.W.J. Williams a publié le tri par tas dans Communications of the ACM en 1964. L'algorithme construit un tas binaire (un arbre où chaque parent est au moins aussi grand que ses enfants) et extrait à plusieurs reprises la racine. Garanti O(n log n) dans les cas moyens et pires, sans mémoire supplémentaire, mais non favorable au cache. Le tri par tas est le repli au pire cas à l'intérieur du std::sort de C++ (Introsort, 1997).
ASCII fixe l'ordre de tri (1963 à 1967)
ASCII, ratifié en 1963 et révisé en 1967, a attribué les codes 48 à 57 aux chiffres 0 à 9 et 65 à 90 aux majuscules A à Z. La convention selon laquelle 0 trie avant 9 trie avant A trie avant Z (et que les majuscules trient avant les minuscules) est ancrée dans chaque tri lexicographique par défaut que le monde a produit depuis. C'est pourquoi «Apple» trie avant «apple» et pourquoi «10» trie avant «9» lorsque vous comparez des chaînes caractère par caractère.
Algorithme de collation Unicode (1996)
Le Consortium Unicode a publié le premier Algorithme de Collation Unicode (UCA) en 1996, codifié comme UTS #10. UCA attribue à chaque point de code un poids à plusieurs niveaux (primaire, secondaire, tertiaire) afin que le tri puisse être sensible à la locale : en allemand, ä peut trier avec a ou après z selon le contexte ; en suédois, å trie après z ; en espagnol, ñ trie après n. Intl.Collator de JavaScript (2014) enveloppe UCA et c'est ce qui alimente le tri de listes correct par locale sur le web.
Flux de travail pratiques
Trier alphabétiquement une liste de noms
Vous avez une liste de classe, une liste de participants ou un vidage de contacts collé d'une colonne de tableur. Collez, cochez Insensible à la casse (pour que «alice» et «Alice» trient ensemble), cliquez sur A à Z. La sortie est prête à être copiée dans le tableur ou collée dans la ligne BCC d'un e-mail. Supprimer les espaces attrape les espaces parasites qui viennent des artefacts de copier-coller.
Dédoublonner des entrées de journal
Vous avez exporté 5 000 messages d'erreur d'un journal de serveur et voulez connaître les distincts. Collez, cochez Supprimer les doublons, cliquez sur A à Z. Le compteur de sortie vous dit combien d'erreurs uniques existent. Combinez avec Supprimer les espaces si les lignes de journal ont une indentation variable.
Tirer des noms pour une loterie ou un tirage au sort
Collez les noms des concurrents, un par ligne. Cliquez sur Mélanger. La première ligne de la sortie est votre gagnant, la deuxième le second, et ainsi de suite. L'implémentation Fisher-Yates utilise Math.random, qui est statistiquement uniforme mais pas cryptographiquement sécurisé. Pour les tirages de prix avec implications juridiques, exécutez le mélange sur un serveur en utilisant un CSPRNG.
Préparer une colonne CSV
Lorsqu'un fichier CSV a des SKU de produit ou des ID de client non triés dans une colonne, copiez la colonne dans un éditeur de texte, collez ici, triez numériquement et collez à nouveau. Le mode numérique gère correctement les SKU comme «9», «10», «100» (le lexicographique les ordonnerait 10, 100, 9, ce qui est rarement ce que vous voulez).
Comparer deux listes pour les éléments manquants
Triez les deux listes avec les mêmes options (A à Z, Insensible à la casse, Supprimer les espaces). Collez-les côte à côte dans un outil de diff. Les éléments qui apparaissent dans une liste mais pas dans l'autre deviennent évidents. C'est plus rapide que de scanner manuellement des listes non triées et fonctionne même lorsque les deux listes ont des milliers d'entrées.
Trier un backlog ou une liste de tâches
Lorsque vous écrivez une liste de tâches dans un éditeur de texte brut et que vous la voulez dans l'ordre de priorité ou alphabétique, collez dans le trieur. Utilisez Plus long d'abord pour faire remonter les tâches en plusieurs étapes en haut, ou Plus court d'abord pour effacer les victoires faciles en premier. Inverser l'ordre est utile lorsque la liste originale était déjà triée mais dans la mauvaise direction.
Pièges courants
Tri lexicographique vs numérique
Les tris A-à-Z par défaut comparent les chaînes caractère par caractère, donc «10» vient avant «9» parce que «1» vient avant «9» en ASCII. Pour les données numériques, utilisez plutôt le mode Numérique. Pour les données alphanumériques mixtes comme «fichier2.txt» vs «fichier10.txt» (tri naturel), cet outil ne prend pas directement en charge le tri naturel. Vous pouvez le simuler en complétant les nombres avec des zéros avant de trier.
La sensibilité à la casse est activée par défaut
Par défaut, le tri est sensible à la casse : «Apple» trie avant «apple» parce que A majuscule (65) vient avant a minuscule (97) en ASCII. Si vous voulez un tri insensible à la casse (alphabétique sans tenir compte de la capitalisation), cochez la case Insensible à la casse avant de cliquer sur Trier les lignes.
Les espaces en fin de ligne cassent la déduplication
«apple» et «apple » (avec espace final) sont des chaînes différentes, donc la déduplication garde les deux. Cochez toujours Supprimer les espaces à côté de Supprimer les doublons lorsque vous traitez des données collées, sinon le compte de déduplication sera gonflé par ce qui semble être des lignes identiques.
Le tri sensible à la locale n'est pas pris en charge
Cet outil utilise l'ordre de point de code Unicode par défaut, qui est correct pour l'anglais et de nombreuses langues européennes mais pas pour l'allemand (ä, ö, ü), le suédois (å, ä, ö), l'espagnol (ñ), ou tout script avec des règles de collation. Pour un tri correct par locale, utilisez un tableur ou un langage de programmation avec le support Intl.Collator.
Le tri stable est garanti depuis 2019
Array.prototype.sort est devenu stable dans tous les principaux navigateurs à partir de Chrome 70 (2018) et Firefox 65 (2019). Avant cela, les éléments égaux pouvaient être réorganisés de manière imprévisible, ce qui cassait tout flux de travail qui dépendait de l'ordre d'insertion. Cet outil s'appuie sur la garantie de stabilité moderne, donc les lignes égales restent dans leur ordre relatif d'origine.
La normalisation Unicode affecte l'égalité
Le caractère é peut être encodé comme un seul point de code (U+00E9) ou comme e plus l'accent aigu combinant (U+0065 U+0301). Ils semblent identiques mais sont des séquences d'octets différentes, donc la déduplication ne les fera pas correspondre. Si vos données mélangent les deux formes, normalisez d'abord avec NFC dans un langage de programmation, ou attendez-vous à ce que les doublons survivent au passage de déduplication.
Confidentialité et gestion des données
Chaque ligne que vous collez est triée dans votre navigateur par une petite fonction JavaScript. Aucune donnée ne quitte votre appareil. Nous ne journalisons pas les entrées, ne stockons pas les sorties, n'exécutons pas d'analyses liées au contenu textuel et ne chargeons pas de SDK tiers qui pourraient lire les zones de texte. Les boutons Copier le résultat et Télécharger .txt interagissent avec votre système d'exploitation via les API standard de geste utilisateur (API Clipboard et l'astuce <a download>) et ne sont visibles à aucune partie extérieure.
Une fois la page chargée, l'outil fonctionne hors ligne. Vous pouvez vous déconnecter du réseau, ouvrir dans une fenêtre privée, exécuter dans un bac à sable d'entreprise ou utiliser le mode avion dans un vol, et le tri se terminera toujours. Cela rend l'outil sûr pour les listes de clients confidentielles, les SKU internes et toutes les données qui ne devraient jamais toucher un serveur tiers.
Quand ne pas utiliser un trieur de lignes
Trier une colonne de tableur avec des cellules liées
Si la colonne A contient des noms et la colonne B contient les adresses e-mail correspondantes, copier uniquement la colonne A ici et trier désynchronisera la relation de ligne. Utilisez le tri intégré du tableur qui déplace les lignes entières ensemble. Le tri de lignes est pour le texte autonome et indépendant des lignes.
Très grands ensembles de données (millions de lignes)
L'outil garde toute l'entrée et la sortie en mémoire et s'exécute de manière synchrone, ce qui peut figer l'onglet du navigateur sur des entrées de plusieurs millions de lignes. Pour des ensembles de données de cette taille, utilisez un tri en ligne de commande (sort Unix, sort -u, sort -n) qui gère des fichiers arbitrairement grands via le tri par fusion externe.
Données en temps réel en streaming
Si de nouvelles lignes arrivent chaque seconde (comme un flux de journal en direct ou un flux websocket), cet outil ne peut pas suivre. Il est conçu pour le traitement par lots de texte statique. Pour le tri en streaming, utilisez une base de données avec un index trié, ou un langage de programmation avec une file de priorité.
Données structurées (JSON, CSV avec guillemets)
Les tableaux JSON, les fichiers CSV avec des virgules intégrées à l'intérieur des champs entre guillemets, ou les éléments XML ne sont pas sûrs à trier comme texte brut parce que leurs délimiteurs s'étendent sur plusieurs lignes. Utilisez un trieur conscient de JSON, un parseur CSV ou jq pour le tri de données structurées.
Plus de questions
Quel algorithme de tri l'outil utilise-t-il ?
L'outil utilise Array.prototype.sort intégré du navigateur, qui est TimSort dans V8 (Chrome, Edge, Node.js depuis 2018) et un tri par fusion personnalisé dans SpiderMonkey (Firefox). Les deux sont stables, O(n log n) au pire cas et optimisés pour les données du monde réel partiellement triées. Vous ne pouvez presque certainement pas les battre avec une implémentation JavaScript personnalisée.
Puis-je trier par locale (allemand, suédois, chinois) ?
Pas dans cet outil. Nous utilisons l'ordre de point de code Unicode par défaut. Pour un tri sensible à la locale (å suédois après z, ß allemand comme ss, ñ espagnol après n), utilisez un tableur avec des paramètres de locale, ou Intl.Collator de JavaScript dans un script personnalisé. L'outil est destiné aux flux de travail par défaut en anglais.
Quelle est vraiment l'aléatoire de l'option Mélanger ?
Le mélange utilise l'algorithme Fisher-Yates (Knuth 3.4.2) avec Math.random comme source d'entropie. Math.random dans les navigateurs modernes utilise xorshift128+ (Chrome depuis 2015), qui est statistiquement uniforme et passe les tests d'aléatoire, mais n'est pas cryptographiquement sécurisé. Pour les tirages de prix ou tout ce qui a un poids juridique, utilisez crypto.getRandomValues ou un CSPRNG côté serveur.
Y a-t-il un nombre maximum de lignes ?
Pas de limite stricte. L'outil gère confortablement 100 000 lignes sur un ordinateur portable de milieu de gamme. À 1 million de lignes, attendez-vous à une pause de une à trois secondes pendant que le navigateur fait le tri. Au-dessus, la zone de texte elle-même devient le goulot d'étranglement, et l'outil peut brièvement bloquer l'onglet. Utilisez un outil en ligne de commande pour de très grands ensembles de données.
Pourquoi mon tri numérique place-t-il «1.5» entre «1» et «2» ?
Le tri numérique analyse le nombre de tête en utilisant parseFloat, qui reconnaît les points décimaux (1.5), la notation scientifique (1e3), les négatifs (-5) et les unités finales ignorées après les chiffres. Si le résultat n'est pas un nombre, la ligne va à la fin. Ce comportement correspond à la plupart des attentes des utilisateurs mais peut vous surprendre avec des listes mixtes d'entiers et de décimales.
Le tri va-t-il modifier mon entrée originale ?
Non. La zone de texte d'entrée est intacte. La sortie triée apparaît dans une zone de texte distincte en lecture seule. Vous pouvez trier la même entrée plusieurs fois avec des modes ou options différents sans perdre l'original. Le bouton Effacer est le seul moyen d'effacer l'entrée, et il ne demande aucune confirmation, donc utilisez-le délibérément.