Aller au contenu principal

Outils texte

Ces outils de texte comparent et remanient du texte brut dans votre navigateur. Collez deux versions d’un fichier, d’un extrait de journal ou d’un bloc de configuration et voyez exactement ce qui a changé, à la ligne, au mot ou au caractère près, avec un patch unifié que vous pouvez copier dans un e-mail ou un ticket.

18 outils100 % local

Comparer

Mettre en forme

Valider

Convertir

Modifier

Référence

Analyser

Quand utiliser un outil texte dans le navigateur ?

Comparer deux blocs de texte est une chose que les gens font en permanence, et presque toujours à un mauvais moment : une config qui marche sur un hôte et pas sur un autre, un corps de réponse qui a changé entre deux déploiements, une clause de contrat que quelqu’un a modifiée sans suivi des modifications, une ligne de journal presque identique — mais pas tout à fait — à celle d’hier.

La tentation, c’est de regarder à l’œil. Cela marche pour trois lignes et échoue en silence pour trente, car l’attention humaine est extrêmement douée pour voir ce qu’elle attend. Un diff n’est pas une commodité dans cette situation ; c’est la différence entre trouver le changement et vous convaincre qu’il n’y en a pas.

Ce qui fait la qualité d’un outil de diff, c’est la granularité. La comparaison au niveau de la ligne est le bon choix par défaut et c’est ce que montre un gestionnaire de versions, mais elle induit activement en erreur sur deux classes d’entrées : les fichiers minifiés ou sur une seule ligne, où le document entier tient sur une ligne et où le diff dégénère en « cette ligne a changé » ; et les longues lignes de prose, où la modification d’un mot fait passer un paragraphe entier pour réécrit. Les modes mot et caractère existent précisément pour ces cas, et pouvoir basculer entre les trois sans recoller le texte constitue l’essentiel de la valeur.

L’autre moitié, c’est que la sortie doit être portable. Un diff que l’on ne peut que regarder vaut moins qu’un diff que l’on peut transmettre à quelqu’un, aussi l’export en patch unifié produit un patch standard avec de vrais en-têtes de hunk — le format que patch(1) accepte et que l’outil de revue de code rend correctement quand vous le collez dans un commentaire.

Le texte est souvent la chose la plus sensible de ce site. Une charge utile JSON est en général une donnée machine ; un diff de texte est fréquemment un contrat en projet, une note interne, une chronologie d’incident ou un e-mail client. C’est la raison pour laquelle la comparaison se fait dans votre navigateur plutôt que sur un serveur : non pas comme une fonctionnalité, mais parce qu’envoyer ce matériau à un hôte inconnu pour répondre à une question que vous pourriez trancher localement est une mauvaise affaire, quel qu’en soit le prix.

Si les deux choses que vous comparez sont du JSON plutôt que de la prose, utilisez plutôt le comparateur JSON. Il compare la structure analysée et non le texte, si bien que reformatage et réordonnancement de clés — qu’un diff de texte signale comme des centaines de changements — s’affichent correctement comme aucun changement du tout.

Questions fréquentes

Quelle est la différence entre un diff par ligne, par mot et par caractère ?

Le diff par ligne est le choix par défaut et correspond à ce que montre git : une ligne est soit présente, soit absente, soit modifiée. Le diff par mot subdivise chaque ligne modifiée pour que vous voyiez qu’un seul identifiant a bougé, plutôt qu’une ligne entière de 200 caractères qui s’illumine en rouge et en vert. Le diff par caractère va plus loin et est le bon choix pour une seule longue chaîne — une URL, un hash, un blob en base64 — où la différence tient à un caractère en plein milieu et où il faut le trouver.

Puis-je coller un fichier entier, ou faut-il un extrait ?

Des fichiers entiers conviennent jusqu’au plafond de 8 MB du thread principal. La comparaison est un diff de Myers, le même algorithme que celui de git, si bien que son coût croît avec le nombre de différences et non avec la taille de l’entrée — deux grands fichiers presque identiques se comparent presque instantanément, tandis que deux fichiers qui n’ont rien en commun prennent plus de temps.

Le patch unifié est-il au même format que celui que git produit ?

Oui. L’export est un diff unifié standard avec des en-têtes de hunk @@, donc il s’applique avec patch(1) et se colle dans un commentaire de revue de code ou la description d’une pull request sans reformatage. La profondeur de contexte est de trois lignes, la valeur par défaut conventionnelle.

Gère-t-il les fins de ligne Windows ?

Il normalise CRLF en LF avant de comparer, donc un fichier passé par un éditeur Windows ne signale pas chaque ligne comme modifiée. Si les fins de ligne elles-mêmes sont l’objet de votre enquête, cette normalisation est le mauvais comportement — comparez plutôt les octets bruts avec un outil adapté à l’hexadécimal.

Mon texte est-il envoyé quelque part ?

Non. La comparaison s’exécute dans votre navigateur. Il n’y a ni étape d’envoi ni route d’API ; la page est un fichier statique et l’algorithme de diff est du JavaScript s’exécutant dans l’onglet que vous avez déjà ouvert. Ouvrez le panneau Network et collez un document — rien qui transporte votre texte n’apparaît.

Que trouve-t-on d'autre sur ToolsByUs ?

ToolsByUs — Outils texte