Lag diff mellom to filer i Linux

Lag diff mellom to filer i Linux
Denne artikkelen vil liste opp nyttige kommandolinjeverktøy og grafiske applikasjoner som lar deg se “Diff” eller “Difference” mellom to strenger eller to filer. Disse applikasjonene er spesielt nyttige hvis du vil sammenligne flere versjoner av samme fil for å gjennomgå fremdriften eller gå tilbake til gammelt innhold i tilfelle du vil gjenbruke tidligere data som er lagret i filen. Programvareutviklere som bruker et slags versjonskontrollsystem regelmessig bruker DIFF -verktøy for å sammenligne kode.

Grep kommando

GREP er et kommandolinjeverktøy som ofte brukes til å finne og matche tekstinnhold ved bruk av mønstre. Du kan bruke GREP -mønstre på en rekke måter å analysere tekstdata og få matcher. Et slikt grep -mønster lar deg se diff mellom to filer. Forutsatt at det er to filer “File1” som inneholder 1 til 5 tall på hver linje og og “File2” som inneholder 1 til 10 tall på hver linje, kan du bruke følgende GREP -kommando for å se Diff mellom disse filene:

$ grep -fxvf file1 file2

Etter å ha kjørt kommandoen angitt ovenfor, bør du få følgende utdata:

6
7
8
9
10

"F" -bryteren i kommandoen over anser tekstdata som en liste over faste strenger, hver og en av dem atskilt med en linjepause eller ny linje. “X” -bryteren samsvarer bare med hele linjer. “V” -bryteren brukes til å få inverse kamper. Du kan bruke den til å velge ikke-matchende linjer. "F" -bryteren brukes til å få mønstre fra en fil, og hvert mønster er en ny linje. Merk at rekkefølgen på argumenter er viktig når du bruker diff -kommandoen angitt ovenfor. Den finner de linjene som finnes i “File2”, men eksisterer ikke i “File1”. Prøv å kjøre kommandoen nedenfor ved å reversere filordren, du får ingen utdata:

$ grep -fxvf file2 file1

Dette er fordi "File1" ikke har noen linjer som er forskjellige fra "File2". GREP -kommando er som standard tilgjengelig i alle større Linux -distribusjoner. For mer informasjon om GREP -kommando, bruk følgende to kommandoer:

$ mann grep
$ grep -hjelp

Diff -kommando

Diff er en kommandolinjeverktøy som kan brukes til å sammenligne filer linje for linje. Utgangen antyder at linjer som måtte legges til eller fjernes for å matche begge filene med hverandre. Ved å bruke de samme filene som er nevnt i eksemplet over, kjør følgende kommando:

$ diff File2 File1

Du bør få følgende utdata:

6,10d5
< 6
< 7
< 8
< 9
< 10

Utgangen forteller deg at for å matche “File2” med File1, må du slette (“D”) alle linjer som starter fra den 6. linjen til den 10. linjen for å matche den andre filen opp til 5. linje i den første filen. Prøv å reversere kommandoen:

$ diff file1 file2

Du bør få følgende utdata:

5a6,10
> 6
> 7
> 8
> 9
> 10

Utgangen forteller deg at etter den 5. linjen, legg til (“A”) 6 til 10 linjer til “File1” for å matche den til “File2”. Du kan også gjøre en sammenligning side om side ved å bruke "Y" -bryteren.

DIFF -kommando er som standard tilgjengelig i de fleste Linux -distribusjoner. For mer informasjon kan du kjøre disse to kommandoene:

$ mann diff
$ diff -hjelp

Meld

Meld er en grafisk applikasjon som kan brukes til å finne diff mellom to eller flere filer og slå sammen endringer samtidig. Det kan også brukes til å rekursivt sammenligne filer i en katalog, inkludert mapper under versjonskontroll. Meld visuelt indikerer hvilke endringer som må gjøres for å matche to filer som blir sammenlignet. Det kan også vise sanntidsdiff når du fortsetter å redigere en eller begge filene.

For å installere Meld i Ubuntu, bruk kommandoen som er spesifisert nedenfor:

$ sudo apt install meld

Meld er tilgjengelig i standard depoter av de fleste Linux -distribusjoner, slik at du kan laste den ned fra Package Manager. Du kan også få flere pakker og kildekode fra hjemmesiden.

Kompare

Kompare er en gratis og åpen kildekode -applikasjon som kan brukes til å lage diff mellom to filer og slå sammen endringer for å matche innholdet. Utviklet av KDE -teamet, kan det også brukes til å analysere kataloger for rekursivt for å sammenligne forskjeller mellom filer. Kompare indikerer visuelt Diff mellom to filer, og du kan også bruke den til å lage og bruke lapper.

For å installere Kompare i Ubuntu, bruk kommandoen som er spesifisert nedenfor:

$ sudo apt install Kompare

Kompare er tilgjengelig i standard depoter av de fleste Linux -distribusjoner, slik at du kan laste den ned fra Package Manager. Du kan få flere pakker og kildekode fra nettsiden. En snap -pakke er også tilgjengelig her.

Git diff -kommando

Git er en av de mest brukte og populære distribuerte versjonskontrollsystemene. Det kommer med mange kommandolinjeverktøy, inkludert en "diff" -kommando som kan brukes til å sammenligne to filer. Du kan bruke denne kommandoen til å sammenligne to filer mye selv om du ikke bruker GIT -versjonskontroll, og den kommer med mange kommandolinjealternativer for å finpusse oppførselen til Diff -algoritmer. I sin enkleste form kan du kjøre denne kommandoen for å sammenligne to filer:

$ git diff file1 file2

Den fargede utgangen med "+" -tegn viser flere linjer tilgjengelig i "File2". For å installere git og git diff i ubuntu, bruk kommandoen som er spesifisert nedenfor:

$ sudo apt install git

Git Diff er en del av GIT -pakken, og den er tilgjengelig i standard depoter av de fleste Linux -distribusjoner, slik at du kan laste den ned fra Package Manager. For ytterligere informasjon om GIT DIFF, bruk følgende to kommandoer:

$ mann git diff
$ git diff -hjelp

KDIFF3

KDIFF3 er et annet GUI Diff -verktøy opprettet av KDE -teamet. Det kommer med alle bjeller og fløyter du forventer av et diff -verktøy. Det kan sammenligne filer og kataloger og automatisk slå sammen endringer hvis de er valgt slik. Den kommer også med en innebygd redaktør, og den indikerer visuelt hvilke endringer som må gjøres for å matche filene og fjerne forskjeller.


(Bildekilde)

For å installere KDIFF3 i Ubuntu, bruk kommandoen som er spesifisert nedenfor:

$ sudo apt install kdiff3

KDIFF3 er tilgjengelig i standard depoter av de fleste Linux -distribusjoner, slik at du kan laste den ned fra Package Manager. Du kan få flere pakker og kildekode fra nettsiden.

Konklusjon

Dette er noen av de mest nyttige kommandolinjene og grafiske verktøyene som kan brukes til å sammenligne flere filer. Disse diff -verktøyene gir en god måte å spore filendringer, slå sammen forskjeller og lage oppdateringer. Du kan også bruke dem til å manuelt tilbakeføre filer til deres tidligere tilstand hvis behov oppstår.