Input
Output

Hvad er Sammenlign tekst?

Sammenlign tekst er et onlineværktøj, der tager to tekster og viser dig præcis, hvad der er ændret mellem dem. Indsæt den gamle version på den ene side og den nye på den anden, så lyser forskellene op i farve. Grønt for tilføjet, rødt for fjernet.

Det virker med enhver almindelig tekst: afsnit, kodestykker, konfigurationsfiler, kontraktklausuler, oversættelser. Linjer der matcher forbliver neutrale, så øjet går direkte til det, der er anderledes.

Brug det, når du ikke vil åbne et skrivebordsværktøj, men gerne vil have et præcist resultat med ét klik. Ingen registrering, ingen upload, ingen log over hvad du sammenlignede.

Hvad det gør

Compare Text tager to tekster og fremhæver det tilføjede i grønt og det fjernede i rødt. Arbejdet foregår tegn for tegn, så et manglende komma eller en omdøbt variabel træder tydeligt frem. Motoren er Googles diff-match-patch-bibliotek (Apache 2.0). Den generelle teknik kaldes diff, og det underliggende problem (at finde det mindste sæt redigeringer mellem to strenge) reducerer til det klassiske longest common subsequence-problem.

Motoren klarer naturligt sprog og kode lige godt — den samme slags tilgang, der driver versionshistorikken i dokumenteditorer. Hvis du sammenligner strukturerede data i stedet for prosa, parser vores JSON-diff-værktøj først begge sider og ignorerer nøglerækkefølgen: andet problem, andet værktøj.

Ingen server. Din tekst læses af JavaScript med FileReader-API'en, sammenlignes, og resultatet tegnes ind i siden. Lukker du fanen, er det væk.

Sådan sammenligner du to tekster

Tre trin. Diffen opdateres, mens du skriver, ingen knap at trykke på.

  1. 1

    Tilføj originalen

    Indsæt i venstre panel, eller klik på Upload for en .txt- eller .md-fil. Eksempel sætter en kort prøvetekst ind.

  2. 2

    Tilføj den nye version

    Indsæt eller upload til højre. Når begge paneler har indhold, vises sletninger med rødt til venstre og tilføjelser med grønt til højre.

  3. 3

    Gennemgå ændringerne

    Scroll i den ene side, begge paneler følger med. Overskriften viser, hvor mange ændringer der er fundet. Kopiér eller hent en af teksterne.

Hvornår det er nyttigt

Fange redline-ændringer i en kontrakt

Indsæt V1 af en leverandøraftale til venstre og den markerede V2 til højre. Klausuler om skadesløsholdelse, betaling og opsigelse, der stille er blevet ændret, dukker op med det samme. Brugbart, når den anden part sender en ren kopi uden registrering af ændringer slået til.

Korrekturlæse udkast og redigeringer

Sammenlign dit udkast med redaktørens reviderede version, eller dit blogindlæg før og efter en korrektur. Hvert ord, der er ændret, vises; du behøver ikke genlæse hele teksten for at finde sætningen, der faldt ud.

Gennemgå en oversættelsesrunde

Originalen på den ene side, oversætterens rettelser på den anden. Se hvilke vendinger, der er omskrevet, og hvor redaktøren afviste en ord-for-ord-oversættelse. Sparer en ny gennemlæsning af hele dokumentet, når du har tillid til den, der gennemgår.

Diffe konfigurationsfiler

nginx.conf, systemd unit-filer, .env-skabeloner. To versioner side om side på sekunder. Hurtigere end at starte diff i en terminal, når begge filer allerede ligger i din udklipsholder fra en chattråd.

Sammenligne snapshots af logfiler

Gårsdagens deploy-log mod dagens, eller samme jobs output fra to CI-kørsler. Stabile linjer falder i baggrunden, og det nye fejlmønster træder frem. Ved logfiler på flere MB, indsnævr først med grep til den relevante delmængde.

Hurtig reference til tekst-diff

Grænsetilfælde, dette værktøj oftest får frem, med ræsonnementet bag.

EmneHvad dette værktøj gør
LinjeskiftLF, CRLF og CR er forskellige tegn. En Windows-fil (CRLF) sammenlignet med en Unix-fil (LF) ser ud, som om hver linje er forskellig. Normaliser til LF i begge kilder, eller fjern carriage return-tegnene før sammenligning.
Mellemrum i slutningen af linjenVises som en reel forskel: fremhævningen strækker sig forbi det synlige tegn. Brugbart til at fange afsluttende mellemrum i YAML eller CSV, der stille bryder parsere.
Unicode-normaliseringcafé med et præ-komponeret é (U+00E9) er ét tegn; den dekomponerede form e + kombinerende accent (U+0301) er to. De renderes ens, men differ forskelligt. Anvend Unicode Normalization Form C via String.prototype.normalize() for at få dem til at matche.
Match-granularitetTegnniveau under motorhjelmen, med en semantisk oprydningsfase, der grupperer ændringer ved ordgrænser, når den kan. Det er derfor korte almindelige ord nogle gange ser ud til at matche på tværs af ellers ubeslægtet tekst.
FilkodningUploadede filer læses som UTF-8 via FileReader API. Andre kodninger ser forvanskede ud. Konvertér på forhånd, eller indsæt fra et værktøj, der allerede har afkodet filen.
Store inputOp til et par hundrede KB er sub-sekund. 1–2 MB føles mærkbart langsommere. Forbi 5 MB er rendering — ikke selve diff-algoritmen — flaskehalsen. Indsnævr før indsætning.
Tom sideHvis det ene panel er tomt, vises den anden side udelukkende som tilføjelse (eller sletning). Det er diffen, der opfører sig korrekt, ikke en fejl.
Identisk inputNår begge sider matcher nøjagtigt (inklusive mellemrum, linjeskift og Unicode-form), er der nul ændringer, og overskrifterne viser ingen tællere.

Ofte stillede spørgsmål

Bliver min tekst gemt?

Nej. Hele sammenligningen foregår i din browser. Intet sendes til en server, logges eller gemmes. Åbn DevTools og se Network-fanen: der er ingen udgående anmodninger, mens du sammenligner. Luk fanen, og din tekst er væk.

Hvad er forskellen mellem dette og en JSON-diff?

En tekst-diff sammenligner tegn i rækkefølge, så omrokering af nøgler i JSON eller ændring af mellemrum optræder som forskelle, selv når dataene er identiske. Hvis du sammenligner JSON specifikt, så brug værktøjet Compare JSON: det parser begge sider først og er rækkefølgebevidst. For prosa, konfigurationer, almindelig kode eller alt, der ikke er strukturerede data, er tekst-diff det, du vil have.

Håndterer det Windows- vs Unix-linjeskift (CRLF vs LF)?

Det sammenligner dem som de er, så en Windows-fil (CRLF) indsat mod en Unix-fil (LF) ser ud, som om hver linje er forskellig, selv når indholdet matcher. Det er diffen, der fungerer korrekt: input er virkelig forskelligt. For at rette det, normaliser linjeskift i begge kilder, eller fjern carriage return-tegnene før indsætning.

Er der en størrelsesgrænse?

Den praktiske grænse er din enheds hukommelse. Tekster op til et par hundrede KB diffes på langt under et sekund. Forbi 1 MB begynder browseren at mærke det, mest fordi rendering af fremhævningerne bliver dyr. For enorme logfiler eller hele bogmanuskripter, indsnævr først til den del, du faktisk er interesseret i.

Hvorfor ser diffen nogle gange fragmenteret ud?

Diff på tegnniveau forsøger at justere korte fælles delstrenge (the, a, enkelte bogstaver, tegnsætning), hvor den kan. En semantisk oprydningsfase grupperer dem i stykker på ordniveau, hvor det er muligt, men to ubeslægtede afsnit giver alligevel et fragmenteret resultat. Algoritmen kan ikke vide, hvornår to tekster ikke var tænkt til at blive sammenlignet.

Kan jeg sammenligne filer med forskellige tegnkodninger?

Filer, der uploades via uploadknappen, læses som UTF-8 (FileReaders standard). Filer i andre tegnkodninger (Latin-1, Shift-JIS, Windows-1252) ser forvanskede ud; konvertér dem til UTF-8 først. For tekst der allerede ligger i din udklipsholder, har dit operativsystem løst kodningen før indsætning, så det fungerer som regel uden videre.