Hvordan sammenligne og slå sammen filer ved hjelp av diff3 Command på Linux


Kommandoen diff3 i Linux er et nyttig verktøy som sammenligner tre filer og viser forskjellene deres, noe som hovedsakelig er nyttig for programmerere og systemadministratorer som jobber med flere versjoner av samme fil og trenger å slå dem sammen, eller identifisere endringer mellom ulike versjoner.

I denne artikkelen vil vi gå gjennom det grunnleggende om bruk av diff3-kommandoen, dens vanlige alternativer og noen få eksempler for å forstå hvordan det fungerer i Linux.

Hva er diff3-kommandoen?

diff3 er et verktøy som sammenligner tre filer linje for linje, identifiserer forskjellene og viser dem i et format som er lett å forstå.

Den kan brukes til:

  • Finn forskjeller mellom de tre filene.
  • Slå automatisk sammen endringer fra forskjellige filer.
  • Håndtere konflikter som oppstår ved sammenslåing av filversjoner.

Kommandoen diff3 ligner på diff-kommandoen eller sdiff-kommandoen, men fungerer med tre filer i stedet for to, noe som er spesielt nyttig når du har flere bidragsytere som jobber med samme fil, og du må slå sammen endringene deres til én enkelt versjon.

Grunnleggende syntaks for diff3-kommando

Den grunnleggende syntaksen til kommandoen diff3 er:

diff3 [options] file1 file2 file3

Forklaring av kommandoen ovenfor.

  • fil1: Den første versjonen av filen.
  • fil2: Den andre versjonen av filen.
  • fil3: Den tredje versjonen av filen.

Vanlig brukte alternativer

Følgende er noen ofte brukte alternativer for kommandoen diff3:

  • -e: Lag et ed script som kan brukes til å bruke endringer på en fil.
  • -m: Slå sammen filene automatisk.
  • -A: Inkluder alle endringer fra alle filer.
  • -E: Forsøk å slå sammen filer selv om det blir funnet konflikter.
  • -3: Vis bare endringer som er forskjellige mellom alle tre filene.

Finne forskjeller mellom filer i Linux

La oss si at du har tre filer: fil1.txt, fil2.txt og fil3.txt. Hver fil inneholder en litt annen versjon av det samme innholdet, og du ønsker å sammenligne dem for å se hvor forskjellene ligger.

For å sammenligne disse tre filene kan du bruke følgende kommando:

diff3 file1.txt file2.txt file3.txt

Her er hva denne utgangen betyr:

  • 1:2c: Dette viser at i file1.txt, skjer endringen på linje 2, og innholdet på linje 2 er Dette er linje 2.
  • 2:2c: Dette viser at i file2.txt, skjer endringen også på linje 2, men innholdet på den linjen har blitt endret til Dette er endret linje 2. .
  • 3:2,3c: Dette viser at i file3.txt er det endringer i linje 2 og 3. Linje 2 forblir den samme (Dette er linje 2.), men linje 3 er en tilleggslinje som sier: Dette er en tilleggslinje..

Slå sammen filer med diff3 i Linux

Hvis du vil slå sammen de tre filene og lage en ny fil med alle endringene, kan du bruke -m-alternativet:

diff3 -m file1.txt file2.txt file3.txt

Dette vil sende ut det sammenslåtte innholdet med konfliktmarkører som viser hvor det er motstridende endringer.

Her er hva denne utgangen betyr:

  • <<<<<< fil1.txt: Dette markerer begynnelsen på en konflikt og viser versjonen fra fil1.txt.
  • ||||||| file2.txt: Denne linjen viser innholdet fra file2.txt (midtfil i sammenligningen).
  • =======: Dette skiller de motstridende linjene.
  • >>>>>>> file3.txt: Dette markerer versjonen fra file3.txt og slutten på konfliktblokken.

Du kan redigere dette manuelt for å beholde endringene du ønsker.

Bruke endringer fra flere filer til én med diff3

Du kan også bruke diff3 til å lage et ed-skript som bruker endringer fra file2.txt og file3.txt til fil1.txt. Dette kan gjøres ved å bruke -e-alternativet:

diff3 -e file1.txt file2.txt file3.txt > scriptfile

Denne kommandoen oppretter en fil kalt scriptfile som inneholder det genererte ed-skriptet, som du kan bruke ed-kommandoen til å bruke skriptet fra scriptfile til file1.txt.

ed file1.txt < scriptfile

Dette vil endre fil1.txt i henhold til endringene spesifisert i skriptfilen, du kan verifisere med følgende cat-kommando for å se om endringene er tatt i bruk:

cat file1.txt

Dette er nyttig hvis du vil automatisere sammenslåingen av filer ved hjelp av skript.

Løse konflikter i diff3-sammenslåinger

Når du bruker diff3 for sammenslåing, kan det oppstå konflikter når det er forskjeller mellom alle tre filene på samme plassering. Disse konfliktene er merket i utdataene, og du må løse dem manuelt.

  • For å løse konflikter, åpne filen som inneholder konfliktmarkørene.
  • Rediger filen for å fjerne de uønskede linjene og behold endringene du ønsker.
  • Etter å ha løst konflikten, lagre filen.
Konklusjon

Kommandoen diff3 er et kraftig verktøy for å sammenligne og slå sammen tre filer i Linux, noe som er spesielt nyttig for å håndtere flere versjoner av samme fil og løse konflikter ved sammenslåing av endringer.

Ved å forstå dens grunnleggende bruk og alternativer, kan du effektivt administrere filversjoner og samarbeide med andre om prosjekter.