Linux Diff-opdracht

Linux Diff Opdracht



Het verschil is waarschijnlijker een concept of gevoel dat het ene van het andere kan onderscheiden. Het commando 'diff' verwijst naar variatie. Door de documenten regel voor regel te analyseren, laat deze tool de verschillen tussen de bestanden zien. Het informeert ons welke secties in een document moeten worden gewijzigd om de documenten vergelijkbaar te maken, in tegenstelling tot de begeleidende elementen cmp en comm. Het cruciale aspect om in gedachten te houden is dat om de documenten vergelijkbaar te maken, diff specifieke speciale symbolen en commando's gebruikt. U krijgt instructies over hoe u het eerste document kunt wijzigen zodat het consistent is met het andere document. In deze handleiding bespreken we het gebruik van de opdracht 'diff' in Ubuntu 20.04 met behulp van de Linux-terminal.

We hebben twee tekstbestanden gemaakt in de werkmap van ons systeem.









Het is tijd om de 'diff' -instructie in een querygebied te gebruiken om het verschil tussen beide bestandsinhouden weer te geven. We proberen deze 'diff' -instructie met beide bestandsnamen in een reeks, d.w.z. eerst één.txt en dan twee.txt-bestanden. De uitvoering van de opdracht 'diff' toont ons het verschil tussen beide bestanden als:



  • Regelnummers volgens het eerste tekstbestand.
  • Speciale tekens/symbolen om ons het verschil te laten weten, zoals wijzigen, toevoegen, verwijderen.
  • Regelnummers volgens het tweede tekstbestand.

In onze eerste illustratie gaan we dieper in op het 'a'-symbool tussen de regelnummers van de 'diff'-opdrachtuitvoer; 'a' wordt gebruikt als de afkorting van 'Toevoegen'. Het gebruik van de 'cat'-instructie met beide bestandsnamen in het zoekgebied geeft afzonderlijk de inhoud van elk tekstbestand weer, d.w.z. one.txt en two.txt. We hebben in totaal 4 regels binnen het eerste bestand, terwijl het tweede bestand 5 regels bevat. Lijn 1 is extra.





Vervolgens proberen we de 'diff' -instructie in het terminalquery-gebied, gevolgd door de namen van bestanden - one.txt en two.txt. De uitvoering van deze instructie toont '0a1' als uitvoer samen met regel 1 uit het tweede bestand, wat een extra regel is in het tweede bestand. De numerieke waarde '0' wordt gebruikt voor regel 0 of voor regel 1 van het eerste bestand, d.w.z. one.txt. Het symbool 'a' betekent 'toevoegen'. Ten slotte betekent de numerieke waarde '1' de eerste regel van het tweede bestand. De mix-output '0d1' betekent dat regel 1 van het tweede bestand 'two.txt' bovenaan het eerste bestand 'one.txt' moet worden toegevoegd voordat de eerste regel twee beide bestanden hetzelfde maakt.



Nu werken we beide bestanden bij om een ​​andere illustratie te zien. Het eerste bestand “one.txt” bevat 4 regels en het tweede bestand “two.txt” bevat slechts 3 regels. Het enige verschil voor deze bestanden is het gebruik van een extra regel in het eerste bestand, d.w.z. regel 1 = “Maandag” die niet in het tweede bestand staat. Na het proberen van de 'diff' -instructie voor de bijgewerkte tekstbestanden, krijgen we '1d0' als uitvoer. En de eerste regel van het eerste bestand wordt weergegeven. In '1d0' betekent 1 dat de eerste regel van het bestand 'one.txt' moet worden verwijderd (volgens het symbool 'd') en 0 betekent dat het tweede bestand geen update heeft gekregen. Uiteindelijk wordt de regel 1 uit het eerste bestand 'one.txt' weergegeven voor het duidelijke verschil.

Evenzo kan de opdracht 'diff' een verschil weergeven tussen de regels van twee bestanden. Daarom updaten we beide tekstbestanden opnieuw. Deze keer bevat het eerste bestand 5 regels, terwijl het tweede bestand er slechts 4 bevat. Het enige verschil is het gebruik van een extra regel in one.txt, namelijk regel 3. Het diff-commando dat op beide bestanden in de terminal wordt gebruikt, geeft een output '3d2' samen met regel 3 van het eerste bestand 'one.txt'. Deze uitvoer laat zien dat regel 3 van het eerste bestand 'one.txt' moet worden verwijderd, zodat we beide bestanden op regel 2 van het tweede bestand kunnen synchroniseren. De andere regel '3' wordt weergegeven, zodat we een duidelijk idee kunnen krijgen van het verschil.

Laten we de output helder en dieper bekijken. De 1,5c1,2 uitvoer van de volgende afbeelding laat zien dat de regels 1 tot 5 van een eerste bestand (one.txt) moeten worden gewijzigd met regels 1 tot 2 van een tweede bestand (two.txt). Het betekent dat de eerste 5 regels (1 tot 5) van het one.txt-bestand moeten worden gewijzigd en vervangen door de eerste twee regels (1, 2) van het tweede bestand 'two.txt' om het hetzelfde te maken. Uiteindelijk worden alle 5 regels van het eerste bestand weergegeven die moeten worden vervangen door de weergegeven 2 regels van het tweede bestand. Dit is hoe het symbool 'c' een verschil tussen twee bestanden aangeeft - geen regel is hetzelfde in beide bestanden.

Met de opdracht 'diff' kunt u de uitvoer in een contextvorm krijgen. Stel je voor dat je dezelfde twee bestanden hebt met de volgende gegevens in deze bestanden. De context rond de uitvoer zou zijn om het belangrijkste verschil weer te geven tussen de totale eenvoudige bestanden die in de volgende afbeelding worden weergegeven. Nu hebben we 5 regels in het eerste bestand 'one.txt' en 4 regels in het tweede bestand 'two.txt'.

Om de contextgebaseerde uitvoer van de 'diff' -instructie te krijgen, moeten we de '-c' -optie gebruiken binnen de 'diff' -opdracht. Met behulp van de eerder bijgewerkte bestanden in dit 'diff' -commando, krijgen we de volgende uitvoer: datum, dag, samen met de extra informatie over het maken van tekst in de bestanden. De 5 regels van de one.txt-bestanden worden weergegeven. Vooral de derde regel wordt gemarkeerd met het teken '-' om het gewoon aan een ander bestand toe te voegen.

Conclusie

We hebben geprobeerd alles kort uit te leggen over de instructie 'diff'. Hiervoor hebben we onze tekstbestanden elke keer bijgewerkt en hebben we een bijgewerkte uitvoer gekregen voor het toevoegen, verwijderen en wijzigen van de gegevens in een bestand. De inleiding legde het doel uit van het gebruik van de opdracht 'diff' in Linux en hoe het voor Linux te gebruiken.