Hvordan sammenligne to filer i Linux

Hvordan sammenligne to filer i Linux
Hvis du vil sammenligne to filer og dechiffrere forskjellen, en kommando kalt "Diff" benyttes. Denne guiden er fokusert på å gi deg bruk av “Diff”Kommando med forskjellige alternativer for å få forskjellen mellom to filer.

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:

  • en - Legg til: Legg til innhold i den første filen for å synkronisere med den andre filen.
  • c - Endring: Angir at en modifisering som trengs i innholdet i første fil for å matche den andre filen.
  • d - Slett: Fjern innhold fra den første filen for å matche den andre.

“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:

  • | - Linje er annerledes i den andre filen
  • > - Linje er tillegg i den andre filen
  • < - Line has been deleted from the second file

“-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:

  • + : Linje er ikke til stede i den første filen. Sett den inn i den første filen eller fjern den fra den andre filen for å matche begge filene.
  • - : Linjen finnes i den første filen, men ikke i den andre filen. Prøv å sette den inn i den andre filen eller fjerne den fra den første som samsvarer med begge filene.
  • ! : Linje trenger modifisering for å matche.

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.