Maak voordat u begint twee bestanden met een willekeurige teksteditor (nano wordt in deze zelfstudie gebruikt) met dezelfde inhoud:
# nano diffsample1
Binnen plakken:
LinuxHint publiceert de beste inhoud voor jou
druk op CTRL+X en Y om op te slaan en af te sluiten.
Maak een tweede bestand met de naam diffsample2 met dezelfde inhoud:
# nano diffsample2
Opmerking: let op spaties en tabs, bestanden moeten 100% gelijk zijn.
druk op CTRL+X en Y om op te slaan en af te sluiten.
# diff diffsample1 diffsample2
Zoals je kunt zien is er geen uitvoer, je hoeft niets te doen om bestanden gelijk te maken omdat ze al gelijk zijn.
Laten we nu het bestand diffsample2 bewerken om iets te veranderen:
# nano diffsample2Laten we dan het woord "inhoud" vervangen door "tips":
druk op CTRL+X en Y om op te slaan en af te sluiten.
Voer nu uit:
# diff diffsample1 diffsample2Laten we de uitvoer zien:
De uitvoer hierboven, "3c3" betekent "Lijn 3 van het eerste bestand van moet worden vervangen voor regel 3 van het tweede bestand". Het vriendelijke deel van de uitvoer is dat het ons laat zien welke tekst moet worden gewijzigd ("inhoud voor jou" voor "tips voor jou”)
Dit toont ons de referentie voor het commando diff is niet het eerste bestand maar het tweede, daarom moet het eerste bestand derde regel (de eerste 3) worden gewijzigd (C) als de derde regel van het tweede bestand (tweede 3).
Het commando diff kan 3 karakters tonen:
c: dit karakter instrueert a Verandering moet gedaan worden.
een: dit karakter instrueert iets moet zijn Toegevoegd.
d: dit personage instrueert dat iets moet zijn verwijderd.
De eerste cijfers vóór een karakter behoren tot het eerste bestand, terwijl de cijfers na de karakters tot het tweede bestand behoren.
Het symbool < belongs to the first file and the symbol > naar het tweede bestand dat als referentie wordt gebruikt.
Laten we de volgorde van de bestanden omkeren, in plaats van uitvoeren
# diff diffsample1 diffsample2rennen:
# diff diffsample2 diffsample1U kunt zien hoe de volgorde werd omgekeerd en nu wordt het diffsample1-bestand als referentie gebruikt en het geeft ons de opdracht om "tips voor u" te wijzigen in "inhoud voor u", dit was de vorige uitvoer:
Laten we nu het bestand diffsample1 als volgt bewerken:
Verwijder alle regels, behalve de eerste regel in het bestand diffsample1. Voer dan uit:
# diff diffsample2 diffsample1
Zoals je kunt zien, omdat we het bestand diffsample1 als referentie hebben gebruikt, moeten we om het bestand diffsample2 precies gelijk te maken, verwijderen (d) regel twee en drie (2,3) zoals in het eerste bestand en de eerste regels (1) zal gelijk zijn.
Laten we nu de volgorde omkeren en in plaats van "# diff diffsample2 diffsample1” rennen:
# diff diffsample1 diffsample2
Zoals u kunt zien, geeft het vorige voorbeeld ons de opdracht om te verwijderen, maar dit geeft ons de opdracht om toe te voegen (een) regels 2 en 3 na het eerste bestand eerste regel (1).
Laten we nu werken aan de hoofdlettergevoelige eigenschap van dit programma.
Bewerk het bestand diffsample2 zoals:
En bewerk het bestand diffsample1 als:
Het enige verschil zijn de hoofdletters in het bestand diffsample2. Laten we het nu opnieuw vergelijken met diff:
# diff diffsample1 diffsample2
Zoals je kunt zien diff gevonden verschillen, de hoofdletters, vermijden we dat diff hoofdletters detecteert, als we niet geïnteresseerd zijn in hoofdlettergevoelig door de toevoeging van de -ik keuze:
# diff -i diffsample1 diffsample2
Er zijn geen verschillen gevonden, de case-detectie is uitgeschakeld.
Laten we nu het uitvoerformaat wijzigen door de optie toe te voegen -jij gebruikt om uniforme uitvoer af te drukken:
Bovendien, tot op heden en tijd, wordt de uitvoer weergegeven met a - en + symbool wat moet worden verwijderd en wat moet worden toegevoegd om bestanden gelijk te maken.
Aan het begin van dit artikel zei ik dat spaties en tabs in beide bestanden gelijk moeten zijn, omdat ze ook worden gedetecteerd door het commando diff. Als we willen dat het commando diff spaties en tabs negeert, moeten we de -met wie keuze.
Open het bestand diffsample2 en voeg spaties en tabs toe:
Zoals je ziet heb ik een paar tabbladen toegevoegd na "de beste" in de tweede regel en ook spaties in alle regels, sluit, sla het bestand op en voer uit:
# diff diffsample1 diffsample2
Zoals je kunt zien zijn er verschillen gevonden, naast de hoofdletters. Laten we nu de optie toepassen -met wie om diff opdracht te geven om lege spaties te negeren:
Zoals je ziet ondanks de tabulatie diff alleen gevonden als verschil de hoofdletters.
Laten we nu de optie -i opnieuw toevoegen:
Het commando diff heeft tientallen beschikbare opties om toe te passen om te negeren, de uitvoer te wijzigen, kolommen te discrimineren indien aanwezig, enz. U kunt aanvullende informatie over deze opties krijgen met het man-commando, of op http://man7.org/linux/man-pages/man1/diff.1.html. Ik hoop dat je dit artikel met diff Command-voorbeelden in Linux nuttig vond. Blijf Linux volgen Hint voor meer tips en updates over Linux en netwerken.