Twee tekstbestanden vergelijken en zien wat er veranderd is
De snelste manier om twee tekstbestanden te vergelijken is ze allebei in een naast-elkaar-diff-tool te plakken en de regels te lezen die het markeert. Groen voor wat is toegevoegd, rood voor wat is verwijderd, en een gewijzigde regel verschijnt als een van elk. Geen installatie, geen upload, binnen een paar seconden klaar.
Dat dekt de meeste gevallen. Maar twee bestanden die op het scherm identiek lezen, kunnen toch byte voor byte verschillen, en daar verliezen mensen een middag aan. Deze gids laat de snelle methode zien, een uitgewerkt voorbeeld, de onzichtbare verschillen die de moeite waard zijn om te kennen, en waar een AI-chatbot zoals ChatGPT echt helpt. Als je alleen de tool wilt: onze tekstvergelijkingspagina doet het hele ding in je browser.
Wat "twee tekstbestanden vergelijken" echt betekent
Een tekstbestand is een reeks tekens, opgesplitst in regels. Twee ervan vergelijken betekent de delen die overeenkomen op één lijn brengen en de delen die dat niet doen markeren. De klassieke tool hiervoor is het Unix-hulpprogramma diff, en elke moderne diff-viewer, ook de onze, doet dezelfde klus met een vriendelijkere weergave.
De meeste diff-tools werken eerst regel voor regel. Dat houdt ze snel bij lange bestanden en sluit aan bij hoe mensen lezen: je scant naar de regel die is verschoven, en kijkt er dan in naar het woord dat is veranderd. Onze engine is gebouwd op Googles diff-match-patch, die een doorloop in regelmodus doet voordat het naar individuele tekens kijkt, zodat een log van duizend regels toch direct wordt gediffed.
Manieren om twee tekstbestanden te vergelijken
Er is geen enkele juiste methode. Het hangt ervan af waar de bestanden staan en hoe exact je moet zijn.
| Methode | Het best voor | Exact? | Moeite |
|---|---|---|---|
| Ze naast elkaar lezen | Een paar regels, één duidelijke wijziging | Jij bent de scheidsrechter | Laag |
| Online diff-tool | Snelle controles, plakken vanaf overal | Ja, tekenexact | Laag |
Opdrachtregel (diff, git diff) | Bestanden op schijf, scripting, enorme bestanden | Ja | Gemiddeld |
| Code-editor (VS Code "Vergelijken") | Bestanden die al open zijn in je editor | Ja | Laag |
| AI-chatbot (ChatGPT) | Een samenvatting van de wijziging in gewone taal | Nee, kan iets missen of herformuleren | Laag |
Voor een eenmalige controle wint een browsertool op snelheid, omdat er niets te installeren is en je direct kunt plakken vanuit een e-mail, een log of een code-review. Voor bestanden die al in een repository staan, is git diff meteen bij de hand. We komen terug op de AI-optie, want die is echt nuttig voor de juiste klus en een val voor de verkeerde.
Twee tekstbestanden vergelijken in je browser, stap voor stap
Dit is de routine als iemand je twee versies van een document stuurt en vraagt "wat is er anders?" Het duurt ongeveer tien seconden.
- Open de tekstvergelijkings-tool.
- Plak het origineel links en de nieuwe versie rechts. Of gebruik Uploaden om een bestand rechtstreeks van schijf te laden.
- Lees de markeringen. Toegevoegde regels zijn groen, verwijderde regels zijn rood, en een gewijzigde regel verschijnt als een rood-groen paar.
- Scroll door de gewijzigde regels. Binnen elke regel zijn precies de woorden gemarkeerd die verschillen, zodat je niet de hele regel opnieuw hoeft te lezen.
- Als de twee bestanden veel verschillender lijken dan zou moeten, spring dan naar het gedeelte over onzichtbare verschillen hieronder.
Een uitgewerkt voorbeeld
Stel dat een collega een bewerkte alinea terugstuurt en je vraagt zijn wijzigingen te controleren. Hier is jouw origineel:
The service starts at 9am on weekdays.
Refunds are processed within 14 days.
Contact [email protected] for help.
En hier is zijn versie:
The service starts at 8am on weekdays.
Refunds are processed within 30 days.
Contact [email protected] for help.
Priority support is available on request.
Gooi beide in de diff en het echte verhaal is kort, ook al is het makkelijk om er in proza overheen te lezen:
| Regel | Voor | Na | Wijziging |
|---|---|---|---|
| Starttijd | 9am | 8am | Gewijzigd |
| Terugbetalingstermijn | 14 days | 30 days | Gewijzigd |
| Supportregel | [email protected] | [email protected] | Geen wijziging |
| Priority-support | geen | Priority support is available on request. | Toegevoegd |
Twee getallen zijn verschoven en er is een zin toegevoegd. Dat de terugbetalingstermijn verdubbelt van 14 naar 30 dagen, is precies het soort wijziging dat je wilt opmerken voordat het live gaat, en het is één teken verwijderd van onzichtbaar zijn in een snelle blik. Dat is het hele argument om tekst te diffen in plaats van op je ogen te vertrouwen.
De onzichtbare verschillen waar mensen over struikelen
Soms schildert een diff twee bestanden af als volledig verschillend, terwijl ze op het scherm identiek lijken. De oorzaak is bijna altijd een teken dat je niet kunt zien. Hier zijn de gebruikelijke verdachten.
| Onzichtbaar verschil | Waar het vandaan komt | Wat te doen |
|---|---|---|
| Regeleindes: CRLF vs LF | Het ene bestand is opgeslagen op Windows, het andere op macOS of Linux | Normaliseer de regeleindes; zie newline-conventies |
| Spaties aan het einde van een regel | Spaties of tabs achtergelaten aan het einde van een regel | Verwijder de spaties aan het einde, of negeer ze als je tool dat kan |
| Een byte order mark (BOM) | Een editor heeft een onzichtbaar teken aan de eerste regel toegevoegd | Opslaan als UTF-8 zonder BOM |
| Tabs vs spaties | Verschillende editors of inspring-instellingen | Kies er één en converteer; ze zien er op het scherm hetzelfde uit |
| Tekstcodering | Het ene bestand is UTF-8, het andere Latin-1, dus letters met accenten verschillen in bytes | Sla beide opnieuw op als UTF-8 |
| Vaste spaties | Geplakt vanaf een webpagina of een tekstverwerker | Zoek ze en vervang ze door normale spaties |
Wat het hardst bijt, zijn de regeleindes. Een Windows-bestand gebruikt aan het einde van elke regel een carriage return plus een line feed (CRLF); een Mac- of Linux-bestand gebruikt alleen een line feed (LF). Open beide in dezelfde editor en ze zien er hetzelfde uit, maar elke afzonderlijke regel verschilt op byteniveau, zodat een naïeve diff oplicht als een kerstboom. Als je hele bestand als gewijzigd wordt weergegeven, controleer dit dan eerst.
Kan ChatGPT twee bestanden vergelijken?
Ja, en veel mensen doen nu precies dat: twee versies plakken in ChatGPT (of een andere AI-assistent) en vragen "wat is er veranderd?" Voor korte bestanden werkt het goed en geeft het je iets wat een gewone diff niet kan: een samenvatting in gewone taal. "De terugbetalingstermijn ging van 14 naar 30 days en er is een priority-support-regel toegevoegd" is voor een drukke lezer vaak nuttiger dan een muur van rood en groen.
Het addertje is precisie. Een taalmodel is geen diff-algoritme. Het kan een wijziging van één teken missen, een regel stilletjes herformuleren tijdens het samenvatten, of bij een lang bestand ruimte tekortkomen en het midden overslaan. Het betekent ook je tekst aan een derde partij geven, wat je bij iets gevoeligs misschien niet wilt. De twee soorten tools zijn dus aanvullingen, geen rivalen.
Een goede werkwijze: laat de bestanden eerst door een deterministische diff-tool lopen om de exacte, tekengenaue lijst met wijzigingen te krijgen, plak dan die korte lijst in een AI-chatbot en vraag hem de impact in gewone taal uit te leggen. Je krijgt de nauwkeurigheid van een diff en de leesbaarheid van een samenvatting, zonder erop te vertrouwen dat een van beide het werk van de ander doet.
Bestanden vergelijken op de opdrachtregel
Als de bestanden al op schijf staan, is de ingebouwde opdracht
diff één regel:
diff old.txt new.txt
Voeg -u toe voor het unified formaat dat Git gebruikt, of
-w om witruimteverschillen te negeren. Voor bestanden in een
repository doet git diff old.txt new.txt hetzelfde met kleur en
markering op woordniveau. De browsertool is de terminalvrije versie hiervan:
plakken, lezen, klaar.
Verwante tools
Platte tekst is zelden het enige wat je vergelijkt. Als je bestanden gestructureerd zijn, leest een formaatbewuste weergave beter: JSON vergelijken gaat om met herschikte sleutels en inspringruis, en CSV vergelijken lijnt rijen en kolommen uit. Een rommelige lijst opschonen voordat je hem diffet, is een klus voor dubbele regels verwijderen en regels sorteren.
Veelgestelde vragen
- Worden tekstbestanden ergens geüpload wanneer je ze online vergelijkt?
- Op comparetext.org draait de vergelijking in je browser. Beide bestanden worden gediffed door JavaScript op je eigen machine, dus er wordt niets naar een server gestuurd tenzij je bewust op Opslaan of Delen klikt. Dat maakt het veilig voor concepten, contracten, configuratie en al het andere dat je niet zou willen plakken op een site die bij elke toetsaanslag uploadt.
- Waarom tonen mijn twee tekstbestanden elke regel als verschillend?
- Bijna altijd zijn het de regeleindes. Het ene bestand is opgeslagen op Windows (CRLF) en het andere op macOS of Linux (LF), zodat elke regel op byteniveau verschilt hoewel ze identiek lijken. Een verborgen byte order mark (BOM) op de eerste regel of tabs versus spaties kunnen hetzelfde doen. Normaliseer de regeleindes en sla beide opnieuw op als UTF-8, en diff daarna opnieuw.
- Kan ik twee tekstbestanden vergelijken zonder iets te installeren?
- Ja. Open de tekstvergelijkings-tool, plak het ene bestand links en het andere rechts, of gebruik Uploaden om ze van schijf te laden. De diff verschijnt direct, gewoon in de browser, met gewijzigde regels gemarkeerd. Er valt niets te downloaden en er is geen account aan te maken.
- Kan ChatGPT twee bestanden voor mij vergelijken?
- Ja, en het is handig voor een samenvatting in gewone taal van wat er in korte bestanden is veranderd. Maar een taalmodel is geen diff-algoritme: het kan een kleine wijziging missen, een regel herformuleren tijdens het samenvatten, of het midden van een lang bestand overslaan. Voor een exacte, tekengenaue vergelijking gebruik je een diff-tool, en geef je het resultaat daarna aan een AI als je het in woorden uitgelegd wilt hebben.
- Hoe vergelijk ik twee bestanden en negeer ik witruimte?
- Op de opdrachtregel negeert
diff -w old.txt new.txtwitruimteverschillen, endiff -bnegeert wijzigingen in de hoeveelheid witruimte. In een browser verwijder je spaties aan het einde en normaliseer je de regeleindes voordat je plakt, want dat zijn de witruimtewijzigingen die een diff het vaakst vervuilen. Het doel is alleen de bewerkingen over te houden die de betekenis veranderen. - Wat is het verschil tussen tekst vergelijken en code vergelijken?
- De mechaniek is hetzelfde: beide lijnen overeenkomende regels uit en markeren de rest. Het verschil is wat als een echte wijziging telt. In proza kan een opnieuw ingedeelde alinea eruitzien als een grote bewerking terwijl alleen een woord is verschoven. In code doen inspringing en een verplaatste functie ertoe. Een formaatbewuste weergave zoals JSON vergelijken of een taalbewuste editor vermindert die ruis bij gestructureerde bestanden.
Klaar om het te proberen? Plak je twee bestanden in de tekstvergelijkings-tool en zie wat er veranderd is.