Så hvordan gjør "Diff”Kommando fungerer faktisk? “Diff”Kommando sammenligner de to filene og sender ut en liste over forskjeller mellom begge filene. Mer presist gir den en liste over endringer som må gjøres i den første filen for å matche den andre filen. “Diff”Kommando brukes også av programmererne for å få forskjellen mellom to kildekodefiler for å utvikle oppdateringer.
Før du dykker ned i eksemplene, må du merke deg at rekkefølgen på filene er veldig viktig. Fordi det "Diff”Kommando gir utdata basert på rekkefølgen på filene.
Hvordan bruke “diff” -kommando i Linux for å sammenligne filer:
Syntaksen til “Diff”Kommando er nevnt nedenfor:
$ diff [alternativer] [File1] [File2]
Først må du lage to filer. Jeg lager tekstfiler med navnet på “TEST_FILE_1.tekst" og “TEST_FILE_2.tekst". Disse filene inneholder innhold med en liten forskjell:
Bruk nå følgende kommando for å få forskjellen:
$ diff test_file_1.TXT TEST_FILE_2.tekst
Standardutgangen viste linjene som samsvarer i henhold til rekkefølgen på filene som er nevnt i kommandoen. Så la oss avkode utdataene:
Sammenligningen av filene er merket, og hver etikett har et nummer på hver side. Formatet er som følger:
[Linjetall på fil 1] [Etikett (A, C, D)] [Linjetall på fil 2]
Det er tre etiketter:
“2d1” Indikerer å slette linje nummer 2 i den første filen som samsvarer med den andre filen fra linje nummer 1.
på samme måte, “4C3” betyr å gjøre en endring i den fjerde linjen i den første filen som samsvarer med linje nummer 3 i den andre filen, da begge linjene er litt forskjellige.
Det er en annen metode for å se forskjellen, bruk “Diff” kommando med “-Y” alternativ:
$ diff -y -w 60 test_file_1.TXT TEST_FILE_2.tekst
I ovennevnte utgang, innholdet av “TEST_FILE_1.tekst" vises på venstre side, mens innholdet i “Text_file_2.tekst" vises på høyre side. Forskjellen er indikert med symbolene:
“-W” indikerer bredden mellom innholdet i to filer. For å komme separat og se forskjellen, bruk følgende:
$ diff -y -w 60 -Suppress -Common -Lines test_file_1.TXT TEST_FILE_2.tekst
Hvordan få output i en linje ved å bruke “Diff” -kommandoen:
Hvis den merkede metoden er vanskelig for deg å avkode, er det en enklere tilnærming. Bruker “-Q” alternativ med “Diff” Kommando gir deg utdata i en linje. Vel, uten ytterligere informasjon, skjønt:
$ diff -q test_file_1.TXT TEST_FILE_2.tekst
Hvis filene er forskjellige, vil kommandoen ovenfor gi en utdata. Hvis filene er identiske, vil det ikke komme noen utdata. For å demonstrere det, lager jeg en kopi av “TEST_FILE_1.tekst" ved hjelp av:
$ CP TEST_FILE_1.TXT TEST_FILE_3.tekst
En ny fil vil bli opprettet med navnet på “TEST_FILE_3.tekst" inneholder det samme innholdet som “TEST_FILE_1.tekst" har. Nå, bruk:
$ diff -q test_file_1.TXT TEST_FILE_2.tekst
Siden begge filene har lignende innhold, vil det derfor ikke komme noen utdata.
Hvordan sjekke forskjellen på filer i kontekstmodus ved å bruke “Diff” -kommandoen:
For å få sammenligningen i kontekstmodus, “-C” alternativet vil bli brukt med “Diff” kommando:
$ diff -c test_file_1.TXT TEST_FILE_2.tekst
La oss dissekere utdataene.
For å opprettholde forskjellen indikeres den første filen med "***" sammen med datoen og klokkeslettet for opprettelsen, mens den andre filen er indikert med "-".
Den neste linjen betyr en rekke linjer som ble vurdert under sammenligning. For den første filen er den “*** 1,6 ****” Og for den andre filen er det “-1,5--”:
Forskjellen er indikert med symbolene:
Hvordan sjekke forskjellen på filer i enhetlig modus ved å bruke “Diff” -kommandoen:
Den enhetlige modusen er ganske lik kontekstmodus, men uten overflødig informasjon. Flagget vi bruker er “-U”:
$ diff -u test_file_1.TXT TEST_FILE_2.tekst
I utgangen er den første filen indikert med "-" og den andre av "+++". Den andre linjen viser antall linjer som er vurdert for sammenligning i begge filene, deretter innholdet som skal slettes, legges til eller endres med symbolene med dem. Det vil ikke være noe symbol med lignende linjer i begge filene.
Hvordan ignorere saksfølsomhet mens du bruker “Diff” -kommandoen:
Hvis du vil sammenligne filene mens du ignorerer saksfølsomheten, kan du bruke "-Jeg" flagg:
$ diff -i test_file_1.TXT TEST_FILE_2.tekst
For demonstrasjon har jeg laget “D” av "Dypt inni" I den første filen liten:
Som sett i den første kommandoen er forskjellen indikert; Mens du bruker "-Jeg" Den forskjellen er fjernet.
Noen andre nyttige alternativer for “Diff” Kommandoen er oppført nedenfor:
Alternativ | Beskrivelse |
---|---|
-en | Dette alternativet behandler alle filene som tekstfiler |
-B | Den ignorerer modifisering der linjer er alle blanke |
-E | Dette alternativet ignorerer faneutvidelse |
-Jeg | Den ignorerer endringene der alle linjer stemmer overens |
-s | Gir utdata når to filer er identiske |
-w | Det ignorerer alt hvitt rom |
-Z | Det ignorerer hvit plass ved linjen |
Hvordan bruke VIM -redigeringsprogram til å sammenligne to filer:
En annen metode for å sammenligne to filer bruker “Vimdiff” kommando. For det må du ha VIM installert:
$ sudo apt install vim
Nå, for å sammenligne to filer, bruk:
$ vimdiff test_file_1.TXT TEST_FILE_2.tekst
Begge filene vil bli åpnet side om side. Den delen som ikke stemmer overens vil bli fremhevet:
Hvordan sammenligne to filer ved å bruke “Colordiff”:
En annen tilnærming er en slags utvidelse av “Diff” kommando. Du kan gjøre sammenligningen mer identifiserbar ved å legge til farger til den. For å installere bruk:
$ sudo apt install colordiff
For å sammenligne filer, bruk:
$ colordiff test_file_1.TXT TEST_FILE_2.tekst
Du kan erstatte “Diff” med “Colordiff” for å få standardutgangen til “Diff” Kommando i farget format.
Konklusjon:
For å sammenligne filer i Linux og til og med i macOS, kalles et verktøy som brukes “diff”. "Diff" -verktøyet sammenligner to filer og gir informasjon om forskjellene mellom de to filene. Utviklerne bruker først og fremst “Diff” -kommandoen for å opprette oppdateringsfiler.
I denne guiden diskuterte vi grundig “Diff” kommando og hvordan du bruker den til å sammenligne to filer med forskjellige alternativer. Vi lærte også å bruke “Colordiff” for å gjøre filforskjellene mer gjenkjennelige. Men hvis du finner terminalbasert verktøy som er vanskelig å bruke, er det noen GUI -baserte verktøy også, for eksempel Kompare, DiffMerge, Meld - Diff Tool og Diffuse - GUI Giff Tool.