Skip to content

Hoe twee tekstbestanden te vergelijken met Linux

26 de juni de 2021
compare two text files linux 3861434 52a95e5bb9fa4f00aad8f40b0a3e4ebe

Wat te weten

  • Voer om te vergelijken uit: diff bestand1 bestand2
  • Laat zien hoe ze verschillen met: diff -q bestand1 bestand2
  • Laat zien hoe ze hetzelfde zijn met: diff -s bestand1 bestand2

Dit artikel legt uit hoe je Linux kunt gebruiken om twee bestanden te vergelijken en de verschillen tussen de bestanden op het scherm of een bestand uit te voeren. Je installeert geen speciale software om bestanden te vergelijken met Linux, maar je moet wel weten hoe je een terminalvenster opent.

Maak de bestanden om te vergelijken

Als u deze handleiding wilt volgen, maakt u twee tekstbestanden die vergelijkbare maar verschillende tekst bevatten.

Maak het eerste bestand

Maak een bestand met de naam bestand1 en voer dan de volgende tekst in: 10 groene flessen staan ​​op een muur
10 groene flessen staan ​​op een muur
Als een groene fles per ongeluk zou vallen
Er zouden 9 groene flessen aan de muur staan

Volg deze instructies om dit bestand te maken:

  1. Open het bestand door de volgende opdracht te typen: nano file1

    De snelste manier om een ​​terminalvenster in Linux te openen, is door op de CTRL+ALT+T toetsen tegelijk.

  2. Typ de tekst in de nano-editor.

    Terminalbestand1 in Nano

  3. druk op CTRL+O om het bestand op te slaan.

  4. druk op CTRL+X om het bestand te verlaten.

Maak het tweede bestand

Maak vervolgens een ander bestand met de naam bestand2 en voer de volgende tekst in: 10 groene flessen die op een muur staan
Als er per ongeluk 1 groene fles valt
Er zouden 9 groene flessen aan de muur staan

Volg deze instructies om dit bestand te maken:

  1. Open het bestand door de volgende opdracht te typen: nano file2

  2. Typ de tekst in de nano-editor.

    Terminalbestand2 in Nano

  3. druk op CTRL+O om het bestand op te slaan.

  4. druk op CTRL+X om het bestand te verlaten.

Hoe twee bestanden te vergelijken met Linux

Het commando dat in Linux wordt gebruikt om de verschillen tussen twee bestanden te laten zien, wordt het diff-commando genoemd. De eenvoudigste vorm van het diff-commando is als volgt: diff file1 file2

Als de bestanden hetzelfde zijn, wordt er geen uitvoer weergegeven bij gebruik van deze opdracht. Omdat er echter verschillen zijn, is de uitvoer vergelijkbaar met het volgende: 2,4c2,3
< 10 groene flessen die op de muur staan
< Als een groene fles per ongeluk zou vallen
< Er zouden 9 groene flessen aan de muur staan

> Als er per ongeluk 1 groene fles valt
> Er zouden 9 groene flessen aan de muur staan

Aanvankelijk lijkt de uitvoer verwarrend, maar als je de terminologie eenmaal begrijpt, is het redelijk logisch.

Terminalcommando "diff file1 file2" in Linux

De verschillen tussen de twee bestanden zijn als volgt:

  • Het tweede bestand heeft slechts drie regels. Het eerste bestand heeft er vier.
  • Het tweede bestand zegt 1 groene fles op de derde regel. Het eerste bestand zegt een groene fles.
  • Het tweede bestand zegt het Rode in plaats van er zou op de laatste regel.

De uitvoer van het diff-commando laat zien dat er tussen regel twee en vier van het eerste bestand en regel twee en drie van het tweede bestand verschillen zijn. Vervolgens worden de regels van twee tot vier uit het eerste bestand weergegeven, gevolgd door de twee verschillende regels in het tweede bestand.

Alleen weergeven als de bestanden anders zijn

Als je alleen wilt weten of de bestanden anders zijn en je bent niet geïnteresseerd in welke regels anders zijn, voer je het volgende commando uit: diff -q file1 file2

Als de bestanden verschillend zijn, wordt het volgende weergegeven: Bestanden bestand1 en bestand2 verschillen

Als de bestanden hetzelfde zijn, wordt er niets weergegeven.

Een bericht weergeven als de bestanden hetzelfde zijn

Wanneer u een opdracht uitvoert, wilt u misschien weten of deze correct werkte. U wilt dat er een bericht wordt weergegeven wanneer u de opdracht diff uitvoert, ongeacht of de bestanden hetzelfde of verschillend zijn. Om aan deze vereiste te voldoen met de opdracht diff, gebruikt u de volgende opdracht: diff -s file1 file2

Als de bestanden hetzelfde zijn, verschijnt dit bericht: Bestanden bestand1 en bestand2 zijn identiek

Hoe de verschillen naast elkaar te produceren?

Als er meerdere verschillen zijn, kan het verwarrend zijn wat de verschillen zijn tussen de twee bestanden. U kunt de uitvoer van het diff-commando wijzigen zodat de resultaten naast elkaar worden weergegeven. Voer hiervoor de volgende opdracht uit: diff -y file1 file2

De uitvoer voor het bestand gebruikt de | symbool om een ​​verschil tussen de twee lijnen aan te geven, a < om een ​​regel weer te geven die is verwijderd, en a > om een ​​toegevoegde regel weer te geven.

Terminalcommando "diff -y file1 file2" in Linux

Wanneer u de opdracht uitvoert met behulp van de demonstratiebestanden in dit artikel, worden alle regels als verschillend weergegeven, behalve de laatste regel van bestand2, die wordt weergegeven als verwijderd.

Kolombreedte beperken

Als u twee bestanden naast elkaar vergelijkt, kan het moeilijk zijn om te lezen als de bestanden meerdere tekstkolommen hebben. Gebruik de volgende opdracht om het aantal kolommen te beperken: diff –width=5 file1 file2

Hoe u verschillen in hoofdletters kunt negeren bij het vergelijken van bestanden

Als u twee bestanden wilt vergelijken, maar het maakt u niet uit of de hoofdletters van de twee bestanden hetzelfde zijn, gebruik dan het volgende commando: diff -i bestand1 bestand2

Hoe u achterblijvende witruimte aan het einde van een regel negeert?

Als u veel verschillen opmerkt bij het vergelijken van bestanden en de verschillen worden veroorzaakt door witruimte aan het einde van de regels, voorkom dan dat deze als wijzigingen worden weergegeven door het volgende commando uit te voeren: diff -Z file1 file2

Hoe alle verschillen in witruimte tussen twee bestanden te negeren

Als je alleen geïnteresseerd bent in de tekst in een bestand en het maakt je niet uit of er meer spaties in de ene zijn dan in de andere, gebruik dan het volgende commando: diff -w bestand1 bestand2

Lege regels negeren bij het vergelijken van twee bestanden

Als het u niet kan schelen dat een bestand extra lege regels bevat, vergelijkt u de bestanden met het volgende commando: diff -B file1 file2

Samenvatting

U kunt meer informatie vinden door de handleiding van het diff-commando te lezen. man verschil

Het diff-commando kan in zijn eenvoudigste vorm worden gebruikt om alleen de verschillen tussen twee bestanden weer te geven. Je kunt het ook gebruiken om een ​​diff-bestand te maken als onderdeel van een patchstrategie. Een andere opdracht die u kunt gebruiken om bestanden te vergelijken, is de opdracht cmp. Dit vergelijkt bestanden byte voor byte.