Skip to main content

Slik sammenligner du to tekstfiler ved hjelp av Linux

Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks (April 2025)

Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks (April 2025)
Anonim

Denne veiledningen viser hvordan du bruker Linux til å sammenligne to filer og utføre forskjellen til skjermen eller til en fil.

Du trenger ikke å installere noen spesiell programvare for å sammenligne filer ved hjelp av Linux, men du trenger å vite hvordan du åpner et terminalvindu.

Som den koblede guiden viser, er det mange måter å åpne et terminalvindu ved hjelp av Linux. Det enkleste er å trykke samtidig på CTRL, ALT og T.

Opprette filene som skal sammenlignes

For å følge med denne veiledningen opprett en fil som heter "file1" og skriv inn følgende tekst:

10 grønne flasker står på veggen

10 grønne flasker står på veggen

Hvis en grønn flaske ved et uhell skulle falle

Det ville være 9 grønne flasker som står på veggen

Du kan opprette en fil ved å følge disse instruksjonene:

  1. Åpne filen ved å skrive følgende kommando: nano file1

  2. Skriv inn teksten i nano-editoren

  3. Trykk CTRL og O for å lagre filen

  4. Trykk CTRL og X for å gå ut av filen

Opprett nå en annen fil kalt "file2" og skriv inn følgende tekst:

10 grønne flasker står på veggen

Hvis 1 grønn flaske skulle falle ved et uhell

Det ville være 9 grønne flasker som står på veggen

Du kan opprette en fil ved å følge disse instruksjonene:

  1. Åpne filen ved å skrive følgende kommando: nano file2

  2. Skriv inn teksten i nano-editoren

  3. Trykk CTRL og O for å lagre filen

  4. Trykk CTRL og X for å gå ut av filen

Slik sammenligner du to filer ved hjelp av Linux

Kommandoen som brukes i Linux for å vise forskjellene mellom 2 filer kalles diff-kommandoen.

Den enkleste form for diff-kommandoen er som følger:

diff file1 file2

Hvis filene er de samme, blir det ingen utgang når du bruker denne kommandoen, men da det er forskjeller, ser du utdata som ligner på følgende:

2,4c2,3

<10 grønne flasker står på veggen

<Hvis en grønn flaske ved et uhell skulle falle

<Det ville være 9 grønne flasker som står på veggen

> Hvis en grønn flaske skulle falle ved et uhell

> Det ville være 9 grønne flasker som står på veggen

I utgangspunktet kan utgangen virke forvirrende, men når du forstår terminologien, er det ganske logisk.

Ved å bruke egne øyne kan du se at forskjellene mellom de to filene er som følger:

  • Den andre filen har bare tre linjer, mens den første filen har 4.
  • Den andre filen sier "1 grønn flaske" på den tredje linjen, mens den første filen sier "en grønn flaske"
  • Den andre filen sier "det ville" i stedet for "det ville" på den endelige linjen

Utgangen fra diff-kommandoen viser at mellom linjene 2 og 4 i den første filen og linjene 2 og 3 i den andre filen er det forskjeller.

Det lister deretter linjene fra 2 til 4 fra den første filen etterfulgt av de 2 forskjellige linjene i den andre filen.

Hvordan bare vise hvis filene er forskjellige

Hvis du bare vil vite om filene er forskjellige og du ikke er interessert i hvilke linjer som er forskjellige, kan du kjøre følgende kommando:

diff -q file1 file2

Hvis filene er forskjellige, vises følgende:

Filer fil1 og fil2 er forskjellige

Hvis filene er de samme, vises ingenting.

Slik viser du en melding hvis filene er de samme

Når du kjører en kommando, vil du vite at den har fungert riktig, så du vil at en melding skal vises når du kjører diff-kommandoen, uavhengig av om filene er like eller forskjellige

For å oppnå dette kravet bruker diff kommandoen, kan du bruke følgende kommando :.

diff-s file1 file2

Nå hvis filene er de samme, får du følgende melding:

Filer fil1 og fil2 er identiske

Slik produserer du forskjellene ved siden av

Hvis det er mange forskjeller, kan det veldig fort bli forvirrende om hva forskjellene faktisk er mellom de to filene.

Du kan endre utgangen av diff-kommandoen, slik at resultatene vises side ved side. For å gjøre dette, kjør følgende kommando:

diff -y file1 file2

Utgangen for filen bruker | symbol for å vise forskjell mellom de to linjene, en <for å vise en linje som er fjernet og a> for å vise en linje som er lagt til.

Interessant hvis du kjører kommandoen ved hjelp av våre demonstrasjonsfiler, vil alle linjene vise forskjellig med unntak av den siste linjen i fil 2 som vil bli vist som blitt slettet.

Begrensning av kolonnebredder

Når man sammenligner to filer ved siden av hverandre, kan det være vanskelig å lese om filene har mange tekstkolonner.

For å begrense et antall kolonner, bruk følgende kommando:

diff -width = 5 fil file2

Slik ignorerer du sakforskjeller når du sammenligner filer

Hvis du vil sammenligne to filer, men du bryr deg ikke om hvorvidt bokstavene er de samme mellom de to filene, så kan du bruke følgende kommando:

diff -i file1 file2

Slik ignorerer du bakre hvitt plass på slutten av en linje

Hvis du sammenligner filene du legger merke til, er mange forskjeller og forskjellene er forårsaket av hvitt mellomrom på slutten av linjene, kan du utelate disse som dukker opp som endringer ved å kjøre følgende kommando:

diff -Z file1 file2

Slik ignorerer du alle hvite romforskjeller mellom to filer

Hvis du bare er interessert i teksten i en fil, og du bryr deg ikke om det er flere mellomrom i det ene enn det andre, kan du bruke følgende kommando:

diff -w file1 file2

Slik ignorerer du tomme linjer når du sammenligner to filer

Hvis du ikke bryr deg om at en fil kan ha ekstra tomme linjer i det, kan du sammenligne filene ved å bruke følgende kommando:

diff -B fil1 fil2

Sammendrag

Du kan finne mer informasjon ved å lese håndboken for diff-kommandoen.

mann diff

Diff kommandoen kan brukes i sin enkleste form for å bare vise forskjellene mellom 2 filer, men du kan også bruke den til å lage en diff-fil som en del av en patching strategi som vist i denne veiledningen til Linux patch kommandoen.

En annen kommando du kan bruke til å sammenligne filer, er cmp-kommandoen som vist i denne veiledningen. Dette sammenligner filer byte med byte.