Trier les Lignes
Triez des lignes alphabétiquement A-Z, Z-A, par longueur, ordre numérique naturel ou aléatoire. Déduplication, trim, sensible à la casse. Dans le navigateur.
À Propos de l'Outil Trier les Lignes
Trier les Lignes est un trieur de lignes multi-stratégies avec six modes d'ordonnancement et quatre étapes de pré-traitement facultatives. Les six modes sont : A-Z alphabétique (utilise String.prototype.localeCompare() pour un ordre alphabétique naturel conscient des accents — 'é' se trie entre 'e' et 'f' plutôt qu'après 'z'), Z-A alphabétique inverse, longueur croissante (trie par nombre de caractères via String.length), longueur décroissante, tri Naturel (l'option Intl.Collator avec numeric:true qui ordonne 'file2' avant 'file10' au lieu d'après, correspondant à la façon dont l'Explorateur Windows et les gestionnaires de fichiers modernes trient), et mélange Aléatoire (algorithme Fisher-Yates utilisant Math.random() pour une permutation non biaisée). Le pré-traitement facultatif s'applique avant le tri : Supprimer les Espaces enlève les espaces de début/fin de chaque ligne via String.trim(), Supprimer les Lignes Vides écarte les lignes vides ou uniquement avec espaces, Supprimer les Doublons ne garde que la première occurrence de chaque ligne unique, et Sensible à la Casse bascule si 'Pomme' et 'pomme' sont considérés différents (par défaut désactivé, donc la casse est repliée). Flux typiques : alphabétiser une liste non triée de noms clients avec gestion correcte de café et Müller, trier des noms de fichiers naturellement pour que v1.10 vienne après v1.9 et non après v1.1, randomiser une liste de questions de trivia ou de chansons de playlist, construire des pipelines dédup-et-trier pour analyse de log, et tri par longueur pour trouver les entrées les plus longues/courtes dans un jeu de données.
Qu'est-ce que le tri Naturel et pourquoi '10' vient après '2' en alphabétique mais avant en Naturel ?
Le tri alphabétique compare les chaînes caractère par caractère : '1' (code point 49) < '2' (code point 50), donc '10' est traité comme commençant par '1' et trié avant '2'. Le tri naturel détecte les sous-chaînes numériques intégrées et les compare comme des nombres : dans '10' il voit dix, dans '2' il voit deux, et 2 < 10, donc '2' vient en premier. C'est ce que les humains attendent pour les noms de fichiers (file2.txt avant file10.txt), les chaînes de version (v1.9 avant v1.10) et les adresses (Apt 2 avant Apt 10). Implémenté via Intl.Collator avec {numeric: true, sensitivity: 'base'}, qui est le standard web moderne et gère correctement l'alphanumérique mixte.
Comment fonctionne réellement la sensibilité à la casse — qu'en est-il des caractères accentués comme 'café' ?
Quand Sensible à la Casse est DÉSACTIVÉ (par défaut), le trieur utilise un repliage de casse conscient de la langue via localeCompare avec sensitivity: 'base' — donc 'Pomme', 'POMME' et 'pomme' se trient toutes comme identiques, et les accents comme 'café' vs 'cafe' se replient aussi à la même clé. Quand Sensible à la Casse est ACTIVÉ, les majuscules (code points 65-90) se trient avant les minuscules (97-122), donc 'Zèbre' vient avant 'pomme'. Pour le français avec accents (é, è, à, ô, ç) le mode replié d'accents traite toutes les variantes comme équivalentes pour le tri ; le mode strict d'accents (non exposé dans l'interface) les garderait distinctes. Pour préserver strictement l'ordre accentué français, triez en externe avec locale='fr'.
Quelle est la différence entre cet outil et `sort` d'Unix ?
Unix `sort` est la référence en ligne de commande et prend en charge plus d'options (--field-separator, --key, --month-of-year, --human-numeric), gère des fichiers arbitrairement grands via external merge sort, et est plus rapide sur des entrées de plusieurs gigaoctets. Cet outil fournit 80% des cas d'usage les plus courants (alphabétique, inverse, naturel, longueur, aléatoire, dédup) dans une interface navigateur sans installation. Pour des tris ponctuels d'une liste collée depuis un e-mail ou Excel, le navigateur est plus rapide (pas besoin de sauvegarder un fichier). Pour un fichier log de 10 Go, utilisez `sort` ou `sort -V` (tri de version, similaire au naturel). La version navigateur est aussi consciente de la langue par défaut — `sort` est bytewise par défaut sauf si vous définissez LC_ALL=fr_FR.UTF-8.

Dans quel ordre applique-t-il Trim, Supprimer les Vides, Supprimer les Doublons et le tri réel ?
Le pipeline est : 1) Supprimer les Espaces, 2) Supprimer les Lignes Vides, 3) Trier, 4) Supprimer les Doublons. Cet ordre compte. Trimmer en premier signifie que ' pomme' et 'pomme' sont reconnues comme identiques après trim, donc la dédup peut les trouver. Supprimer les vides avant le tri évite qu'elles ne se regroupent en haut. La dédup après le tri garantit que les doublons adjacents soient repérés (similaire à `sort -u` ou `sort | uniq` d'Unix). Si vous voulez garder les doublons mais triés par longueur, désactivez Supprimer les Doublons — l'ordre est sinon identique.
À quel point Mélange Aléatoire est-il aléatoire — est-il cryptographiquement sûr ?
Il utilise l'algorithme de mélange Fisher-Yates avec Math.random() comme source d'aléatoire. Cela produit une permutation uniforme non biaisée (chacun des n! ordonnancements a une probabilité égale), ce qui est mathématiquement correct pour le mélange ordinaire. Cependant, Math.random() n'est PAS cryptographiquement sûr — c'est un générateur pseudo-aléatoire déterministe qui, en théorie, pourrait être prédit si son état interne était connu. Pour mélanger des playlists, inscriptions de concours, trivia ou jeux de fête, c'est parfaitement adéquat. Pour des cas d'usage sensibles à la sécurité (tirages au sort de loterie, sélection de jury), utilisez crypto.getRandomValues() dans un script personnalisé à la place.
Comment l'outil gère-t-il les entrées très longues — passe-t-il à l'échelle pour 1 million de lignes ?
Oui, avec des réserves. Array.sort() de JavaScript est O(n log n) en moyenne utilisant TimSort dans Chrome/Edge/Firefox, donc 1 million de lignes se trient en environ 1-3 secondes sur un ordinateur portable moderne. Le textarea du navigateur devient le goulot d'étranglement — coller 50+ Mo de texte peut bloquer l'interface. Pour des jeux de données au-delà de 10 Mo, préférez `sort -u fichier.txt > out.txt` d'Unix qui fait du streaming depuis le disque et gère des fichiers arbitrairement grands via external merge sort. Le compteur 'Total de Lignes' montre combien de lignes vous avez avant le tri, utile pour vérifier que le collage a fonctionné.
Le tri est-il fait dans le navigateur et mon texte est-il privé ?
Oui. Tout le tri s'exécute en JavaScript via Array.sort(), Intl.Collator et Fisher-Yates — pas de fetch() vers un serveur, pas d'analytique avec contenu, pas d'écriture localStorage. Ouvrez l'onglet Réseau de DevTools et cliquez sur Trier pour vérifier zéro requête sortante. Sûr pour les listes sensibles comme listes d'e-mails clients, effectifs employés, hostnames internes, sortie de générateur de mots de passe, ou toutes données que vous ne devriez pas téléverser.
