Slik sammenligner du to tekstfiler og ser hva som er endret

Den raskeste måten å sammenligne to tekstfiler er å lime begge inn i et diff-verktøy som viser dem side ved side, og lese linjene det fremhever. Grønt for det som ble lagt til, rødt for det som ble fjernet, og en endret linje vises som en av hver. Ingen installasjon, ingen opplasting, ferdig på noen sekunder.

Det dekker de fleste tilfeller. Men to filer som leser identisk på skjermen, kan likevel være uenige byte for byte, og det er der folk mister en hel ettermiddag. Denne guiden viser den raske metoden, et gjennomarbeidet eksempel, de usynlige forskjellene det er verdt å kjenne til, og hvor en AI-chatbot som ChatGPT faktisk hjelper. Hvis du bare vil ha verktøyet, kjører vår side for tekstsammenligning hele greia i nettleseren din.

Hva "å sammenligne to tekstfiler" egentlig betyr

En tekstfil er en sekvens av tegn delt opp i linjer. Å sammenligne to av dem betyr å stille opp delene som stemmer, og flagge delene som ikke gjør det. Det klassiske verktøyet for dette er Unix-verktøyet diff, og enhver moderne diff-viser, inkludert vår, gjør samme jobb med en vennligere visning.

De fleste diff-verktøy jobber linje for linje først. Det holder dem raske på lange filer og matcher hvordan folk leser: du skanner etter linjen som flyttet seg, og kikker deretter inne i den etter ordet som ble endret. Motoren vår er bygget på Googles diff-match-patch, som kjører en gjennomgang i linjemodus før den ser på enkelttegn, så en logg på tusen linjer diffes fortsatt umiddelbart.

Måter å sammenligne to tekstfiler

Det finnes ingen enkelt riktig metode. Det avhenger av hvor filene ligger, og hvor nøyaktig du må være.

MetodeBest forNøyaktig?Innsats
Å lese dem side ved sideNoen linjer, én åpenbar endringDu er dommerenLav
Diff-verktøy onlineRaske sjekker, liming fra hvor som helstJa, nøyaktig på tegnetLav
Kommandolinjen (diff, git diff)Filer på disk, skripting, enorme filerJaMiddels
Kodeeditor (VS Code "Compare")Filer som allerede er åpne i editoren dinJaLav
AI-chatbot (ChatGPT)Et sammendrag av endringen på vanlig norskNei, kan bomme eller omformulereLav

For en engangssjekk vinner et nettleserverktøy på hastighet fordi det ikke er noe å installere, og du kan lime rett inn fra en e-post, en logg eller en kodegjennomgang. For filer som allerede spores i et repositorium, er git diff rett der. Vi kommer tilbake til AI-alternativet, fordi det er genuint nyttig for riktig jobb og en felle for feil jobb.

Sammenlign to tekstfiler i nettleseren, steg for steg

Dette er rutinen når noen sender deg to versjoner av et dokument og spør "hva er forskjellig?" Det tar omtrent ti sekunder.

  1. Åpne tekstsammenligningsverktøyet.
  2. Lim originalen til venstre og den nye versjonen til høyre. Eller bruk Last opp for å lese inn en fil rett fra disk.
  3. Les fremhevingene. Lagte linjer er grønne, fjernede linjer er røde, og en linje som ble endret, vises som et rødt-og-grønt par.
  4. Bla gjennom de endrede linjene. Inne i hver enkelt er de nøyaktige ordene som er forskjellige, markert, så du slipper å lese hele linjen på nytt.
  5. Hvis de to filene ser langt mer forskjellige ut enn de burde, hopp til avsnittet om usynlige forskjeller nedenfor.

Et gjennomarbeidet eksempel

Si at en kollega sender tilbake et redigert avsnitt og ber deg sjekke endringene deres. Her er originalen din:

The service starts at 9am on weekdays.
Refunds are processed within 14 days.
Contact [email protected] for help.

Og her er deres versjon:

The service starts at 8am on weekdays.
Refunds are processed within 30 days.
Contact [email protected] for help.
Priority support is available on request.

Slipp begge inn i diffen, og den virkelige historien er kort, selv om den er lett å skumme forbi i vanlig tekst:

Hva som faktisk ble endret
LinjeFørEtterEndring
Starttid9am8amEndret
Refusjonsvindu14 days30 daysEndret
Støttelinje[email protected][email protected]Ingen endring
Prioritert støtteingenPriority support is available on request.Lagt til

To tall flyttet seg, og en setning ble lagt til. At refusjonsvinduet dobles fra 14 til 30 dager er den typen endring du vil fange før den går i produksjon, og den er ett tegn fra å være usynlig ved en rask lesing. Det er hele argumentet for å diffe tekst i stedet for å stole på øynene dine.

De usynlige forskjellene som lurer folk

Noen ganger maler en diff to filer som helt forskjellige når de ser identiske ut på skjermen. Årsaken er nesten alltid et tegn du ikke kan se. Her er de vanlige mistenkte.

Usynlig forskjellHvor den kommer fraHva du skal gjøre
Linjeslutt: CRLF vs LFÉn fil ble lagret på Windows, den andre på macOS eller LinuxNormaliser linjesluttene; se konvensjoner for ny linje
Etterfølgende mellomromMellomrom eller tabulatorer igjen på slutten av en linjeTrim etterfølgende mellomrom, eller ignorer det hvis verktøyet ditt kan
En byte order mark (BOM)En editor la til en usynlig markør på den første linjenLagre som UTF-8 uten en BOM
Tabulatorer vs mellomromUlike editorer eller innrykksinnstillingerVelg én og konverter; begge ser like ut på skjermen
TekstkodingÉn fil er UTF-8, den andre Latin-1, så aksenttegn er forskjellige i byteLagre begge på nytt som UTF-8
Harde mellomromLimt inn fra en nettside eller et tekstbehandlingsprogramFinn og erstatt dem med vanlige mellomrom

Den som biter hardest, er linjesluttene. En Windows-fil bruker en vognretur pluss en linjeskift (CRLF) på slutten av hver linje; en Mac- eller Linux-fil bruker bare en linjeskift (LF). Åpne begge i samme editor, og de ser like ut, men hver eneste linje er forskjellig på byte-nivå, så en naiv diff lyser opp som et juletre. Hvis hele filen din vises som endret, sjekk dette først.

Kan ChatGPT sammenligne to filer?

Ja, og mange gjør nå akkurat det: limer inn to versjoner i ChatGPT (eller en annen AI-assistent) og spør "hva ble endret?" For korte filer fungerer det bra og gir deg noe en vanlig diff ikke kan: et sammendrag på vanlig språk. "Refusjonsvinduet gikk fra 14 til 30 dager, og en linje om prioritert støtte ble lagt til" er ofte mer nyttig for en travel leser enn en vegg av rødt og grønt.

Haken er presisjonen. En språkmodell er ikke en diff-algoritme. Den kan bomme på en endring på ett tegn, stille omformulere en linje mens den oppsummerer, eller gå tom for plass på en lang fil og hoppe over midten. Det betyr også å overlate teksten din til en tredjepart, noe du kanskje ikke vil for noe sensitivt. Så de to typene verktøy er utfyllende, ikke rivaler.

En god arbeidsflyt: kjør først filene gjennom et deterministisk diff-verktøy for å få den nøyaktige, tegnnøyaktige listen over endringer, lim så den korte listen inn i en AI-chatbot og be den forklare virkningen på vanlig språk. Du får diffens nøyaktighet og sammendragets lesbarhet, uten å stole på at noen av dem gjør den andres jobb.

Å sammenligne filer på kommandolinjen

Hvis filene allerede er på disk, er den innebygde diff-kommandoen én linje:

diff old.txt new.txt

Legg til -u for det unified-formatet Git bruker, eller -w for å ignorere forskjeller i mellomrom. For filer i et repositorium gjør git diff old.txt new.txt det samme med farge og fremheving på ordnivå. Nettleserverktøyet er den terminalfrie versjonen av dette: lim inn, les, ferdig.

Relaterte verktøy

Ren tekst er sjelden det eneste du sammenligner. Hvis filene dine er strukturerte, leser en formatbevisst visning bedre: sammenlign JSON håndterer omstokkede nøkler og innrykksstøy, og sammenlign CSV stiller opp rader og kolonner. Å rydde opp i en rotete liste før du differ den, er en jobb for fjern dupliserte linjer og sorter linjer.

Ofte stilte spørsmål

Laster en online-sammenligning av tekstfiler dem opp noe sted?
På comparetext.org kjører sammenligningen i nettleseren din. Begge filene diffes av JavaScript på din egen maskin, så ingenting sendes til en server med mindre du bevisst klikker på Lagre eller Del. Det gjør det trygt for utkast, kontrakter, konfigurasjon og alt annet du ikke ville limt inn på en side som laster opp ved hvert tastetrykk.
Hvorfor viser de to tekstfilene mine hver linje som forskjellig?
Nesten alltid er det linjesluttene. Én fil ble lagret på Windows (CRLF) og den andre på macOS eller Linux (LF), så hver linje er forskjellig på byte-nivå selv om de ser identiske ut. En skjult byte order mark (BOM) på den første linjen eller tabulatorer kontra mellomrom kan gjøre det samme. Normaliser linjesluttene og lagre begge på nytt som UTF-8, diff så igjen.
Kan jeg sammenligne to tekstfiler uten å installere noe?
Ja. Åpne tekstsammenligningsverktøyet, lim inn én fil til venstre og den andre til høyre, eller bruk Last opp for å lese dem inn fra disk. Diffen dukker opp umiddelbart, rett i nettleseren, med endrede linjer fremhevet. Det er ingenting å laste ned og ingen konto å opprette.
Kan ChatGPT sammenligne to filer for meg?
Det kan den, og det er nyttig for et sammendrag på vanlig språk av hva som ble endret i korte filer. Men en språkmodell er ikke en diff-algoritme: den kan bomme på en liten endring, omformulere en linje mens den oppsummerer, eller hoppe over midten av en lang fil. For en nøyaktig, tegnnøyaktig sammenligning bruker du et diff-verktøy og overlater deretter resultatet til en AI hvis du vil ha det forklart i ord.
Hvordan sammenligner jeg to filer og ignorerer mellomrom?
På kommandolinjen ignorerer diff -w old.txt new.txt forskjeller i mellomrom, og diff -b ignorerer endringer i mengden mellomrom. I en nettleser bør du trimme etterfølgende mellomrom og normalisere linjesluttene før du limer inn, siden det er de mellomromsendringene som oftest roter til en diff. Målet er å bare la de endringene som endrer betydning, stå igjen.
Hva er forskjellen mellom å sammenligne tekst og å sammenligne kode?
Mekanikken er den samme: begge stiller opp linjer som matcher og flagger resten. Forskjellen er hva som teller som en reell endring. I prosa kan et omformatert avsnitt se ut som en stor redigering når bare et ord flyttet seg. I kode betyr innrykk og en flyttet funksjon noe. En formatbevisst visning som JSON-sammenligning eller en språkbevisst editor reduserer den støyen for strukturerte filer.

Klar til å prøve det? Lim de to filene dine inn i tekstsammenligningsverktøyet og se hva som ble endret.