Skip to main content

Hoe twee tekstbestanden te vergelijken met behulp van Linux

Linux Tutorial for Beginners: Introduction to Linux Operating System (April 2025)

Linux Tutorial for Beginners: Introduction to Linux Operating System (April 2025)
Anonim

Deze gids zal je laten zien hoe je Linux kunt gebruiken om twee bestanden te vergelijken en hun verschil naar het scherm of naar een bestand uit te voeren.

U hoeft geen speciale software te installeren om bestanden met Linux te vergelijken, maar u moet wel weten hoe u een terminalvenster opent.

Zoals de gekoppelde gids laat zien, zijn er vele manieren om een ​​terminalvenster te openen met behulp van Linux. Het eenvoudigste is om tegelijkertijd op CTRL, ALT en T te drukken.

De bestanden maken om te vergelijken

Om samen met deze handleiding door te gaan, maakt u een bestand met de naam "file1" en voert u de volgende tekst in:

10 groene flessen die zich op een muur bevinden

10 groene flessen die zich op een muur bevinden

Als een groene fles per ongeluk zou vallen

Er zouden 9 groene flessen op de muur staan

U kunt een bestand maken door deze instructies te volgen:

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

  2. Typ de tekst in de nano-editor

  3. Druk op CTRL en O om het bestand op te slaan

  4. Druk op CTRL en X om het bestand te sluiten

Maak nu een ander bestand met de naam "file2" en voer de volgende tekst in:

10 groene flessen die zich op een muur bevinden

Als 1 groene fles per ongeluk zou vallen

Er zouden 9 groene flessen op de muur staan

U kunt een bestand maken door deze instructies te volgen:

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

  2. Typ de tekst in de nano-editor

  3. Druk op CTRL en O om het bestand op te slaan

  4. Druk op CTRL en X om het bestand te sluiten

Hoe twee bestanden te vergelijken met behulp van Linux

De opdracht die in Linux wordt gebruikt om de verschillen tussen 2 bestanden weer te geven, wordt de opdracht diff genoemd.

De eenvoudigste vorm van het commando diff is als volgt:

diff file1 file2

Als de bestanden hetzelfde zijn, zal er bij het gebruik van deze opdracht geen uitvoer zijn, maar omdat er verschillen zijn, ziet u de uitvoer als volgt:

2,4c2,3

<10 groene flessen staan ​​op de muur

<Als één groene fles per ongeluk zou vallen

<Er zouden 9 groene flessen op de muur staan

> Als 1 groene fles per ongeluk zou vallen

> Er zouden 9 groene flessen op de muur staan

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

Met je eigen ogen kun je zien dat de verschillen tussen de 2 bestanden zijn als volgt:

  • Het tweede bestand heeft slechts drie regels, terwijl het eerste bestand 4 regels heeft.
  • Het tweede bestand zegt "1 groene fles" op de derde regel terwijl het eerste bestand "één groene fles" zegt
  • Het tweede bestand zegt "there'd" in plaats van "there would" op de laatste regel

De uitvoer van de opdracht diff geeft aan dat er tussen lijnen 2 en 4 van het eerste bestand en lijnen 2 en 3 van het tweede bestand verschillen zijn.

Vervolgens worden de regels weergegeven van 2 tot 4 uit het eerste bestand gevolgd door de 2 verschillende regels in het tweede bestand.

Hoe te tonen als de bestanden anders zijn

Als u alleen wilt weten of de bestanden anders zijn en u niet geïnteresseerd bent in welke regels anders zijn, kunt u de volgende opdracht uitvoeren:

diff-q bestand1 bestand2

Als de bestanden anders zijn, wordt het volgende weergegeven:

Bestanden file1 en file2 verschillen

Als de bestanden hetzelfde zijn, wordt er niets weergegeven.

Hoe een bericht te tonen als de bestanden hetzelfde zijn

Wanneer u een opdracht uitvoert, wilt u weten dat deze correct heeft gewerkt, zodat u een bericht wilt weergeven wanneer u de opdracht diff uitvoert, ongeacht of de bestanden hetzelfde of anders zijn

Om deze vereiste te bereiken met behulp van de opdracht diff, kunt u de volgende opdracht gebruiken :.

diff -s bestand1 bestand2

Als de bestanden hetzelfde zijn, ontvangt u het volgende bericht:

Bestanden file1 en file2 zijn identiek

Hoe de verschillen naast elkaar te produceren

Als er veel verschillen zijn, kan het heel snel verwarrend worden over wat de verschillen eigenlijk zijn tussen de twee bestanden.

U kunt de uitvoer van de opdracht diff 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 regels weer te geven, een <om een ​​regel weer te geven die is verwijderd en een> om een ​​regel weer te geven die is toegevoegd.

Interessant is dat als je de opdracht uitvoert met onze demonstratiebestanden, alle regels anders zullen zijn, behalve de laatste regel van bestand 2 die wordt weergegeven als verwijderd.

Beperken van kolombreedtes

Bij het vergelijken van twee bestanden naast elkaar kan het moeilijk zijn om te lezen als de bestanden veel kolommen met tekst bevatten.

Gebruik de volgende opdracht om een ​​aantal kolommen te beperken:

diff --width = 5 bestandsbestand2

Gevalsverschillen negeren bij het vergelijken van bestanden

Als u twee bestanden wilt vergelijken, maar het u niet uitmaakt of het hoofdlettergebruik tussen de twee bestanden hetzelfde is, kunt u de volgende opdracht gebruiken:

diff -i file1 bestand2

Hoe de achterliggende witte ruimte aan het einde van een lijn te negeren

Als u bij het vergelijken van de bestanden heel veel verschillen ziet en de verschillen worden veroorzaakt door witte spaties aan het einde van de regels, kunt u deze weglaten als wijzigingen door de volgende opdracht uit te voeren:

diff -Z bestand1 bestand2

Alle witte ruimteverschillen tussen twee bestanden negeren

Als u alleen geïnteresseerd bent in de tekst in een bestand en het u niet uitmaakt of er meer spaties in de ene zijn dan in de andere, kunt u de volgende opdracht gebruiken:

diff -w bestand1 bestand2

Lege regels negeren bij het vergelijken van twee bestanden

Als het je niet uitmaakt dat één bestand extra lege regels bevat, kun je de bestanden vergelijken met de volgende opdracht:

diff -B bestand1 bestand2

Samenvatting

U kunt meer informatie vinden door de handleiding voor de opdracht diff te lezen.

man diff

De opdracht diff kan in de eenvoudigste vorm worden gebruikt om u alleen de verschillen tussen twee bestanden te tonen, maar u kunt deze ook gebruiken om een ​​diff-bestand te maken als onderdeel van een patchstrategie, zoals weergegeven in deze handleiding voor de opdracht Linux-patch.

Een andere opdracht die u kunt gebruiken om bestanden te vergelijken, is de opdracht cmp zoals weergegeven in deze handleiding. Hiermee worden bytes van bestanden vergeleken met bytes.