Skip to main content

Sådan sammenlignes to tekstfiler ved hjælp af Linux

"180" Movie (April 2025)

"180" Movie (April 2025)
Anonim

Denne vejledning viser dig, hvordan du bruger Linux til at sammenligne to filer og sende deres forskel til skærmen eller til en fil.

Du behøver ikke installere nogen speciel software for at sammenligne filer ved hjælp af Linux, men du behøver at vide, hvordan man åbner et terminalvindue.

Som den linkede vejledning viser, er der mange måder at åbne et terminal vindue ved hjælp af Linux. Det enkleste er at trykke på CTRL, ALT og T tasterne samtidig.

Oprettelse af de filer, der skal sammenlignes

For at følge med denne vejledning opret en fil kaldet "file1" og indtast følgende tekst:

10 grønne flasker står på en væg

10 grønne flasker står på en væg

Hvis en grøn flaske skulle falde ved et uheld

Der ville være 9 grønne flasker stående på væggen

Du kan oprette en fil ved at følge disse instruktioner:

  1. Åbn filen ved at skrive følgende kommando: nano file1

  2. Indtast teksten i nano-editoren

  3. Tryk på CTRL og O for at gemme filen

  4. Tryk på CTRL og X for at afslutte filen

Opret nu en anden fil kaldet "file2" og indtast følgende tekst:

10 grønne flasker står på en væg

Hvis 1 grøn flaske skulle falde ved et uheld

Der ville være 9 grønne flasker stående på væggen

Du kan oprette en fil ved at følge disse instruktioner:

  1. Åbn filen ved at skrive følgende kommando: nano file2

  2. Indtast teksten i nano-editoren

  3. Tryk på CTRL og O for at gemme filen

  4. Tryk på CTRL og X for at afslutte filen

Sådan sammenlignes to filer ved hjælp af Linux

Kommandoen bruges i Linux til at vise forskellene mellem 2 filer kaldes diff kommandoen.

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

diff file1 file2

Hvis filerne er de samme, vil der ikke være nogen output, når du bruger denne kommando, da der er forskelle, vil du se output svarende til følgende:

2,4c2,3

<10 grønne flasker står på væggen

<Hvis en grøn flaske skulle falde ved et uheld

<Der ville være 9 grønne flasker stående på væggen

> Hvis en grøn flaske skulle falde ved et uheld

> Der ville være 9 grønne flasker stående på væggen

I starten kan udgangen virke forvirrende, men når du forstår terminologien, er det ret logisk.

Ved hjælp af dine egne øjne kan du se, at forskellene mellem de 2 filer er som følger:

  • Den anden fil har kun tre linjer, mens den første fil har 4.
  • Den anden fil siger "1 grøn flaske" på den tredje linje, mens den første fil siger "en grøn flaske"
  • Den anden fil siger "der ville" i stedet for "der ville" på den endelige linje

Udgangen fra diff-kommandoen viser, at mellem linjer 2 og 4 i den første fil og linjer 2 og 3 i den anden fil er der forskelle.

Det lister derefter linjerne fra 2 til 4 fra den første fil efterfulgt af de 2 forskellige linjer i den anden fil.

Sådan får du bare vist, hvis filerne er forskellige

Hvis du bare vil vide, om filerne er forskellige, og du ikke er interesseret i hvilke linjer der er forskellige, kan du køre følgende kommando:

diff -q file1 file2

Hvis filerne er forskellige, vises følgende:

Filer file1 og file2 er forskellige

Hvis filerne er de samme, vises ingenting.

Sådan vises en meddelelse Hvis filerne er de samme

Når du kører en kommando, vil du vide, at den har fungeret korrekt, så du vil have en besked, der skal vises, når du kører diff-kommandoen, uanset om filerne er ens eller forskellige

For at opnå dette krav ved hjælp af diff kommandoen, kan du bruge følgende kommando :.

diff -s file1 file2

Nu, hvis filerne er de samme, får du følgende besked:

Filer fil1 og fil2 er ens

Sådan producerer du forskellene side ved side

Hvis der er mange forskelle, kan det meget hurtigt forvirre, hvad forskellene faktisk er mellem de to filer.

Du kan ændre output fra diff-kommandoen, så resultaterne vises side om side. For at gøre dette køre følgende kommando:

diff -y file1 file2

Udgangen til filen bruger | symbol for at vise en forskel mellem de to linjer, en <for at vise en linje, der er fjernet, og a> for at vise en linje, der er blevet tilføjet.

Interessant, hvis du kører kommandoen ved hjælp af vores demonstrationsfiler, vises alle linjerne som forskellige bortset fra den sidste linje i fil 2, som vil blive vist som blevet slettet.

Begrænsning af kolonnebredderne

Når man sammenligner to filer ved siden af ​​hinanden, kan det være svært at læse, om filerne har masser af tekstkolonner.

For at begrænse et antal kolonner skal du bruge følgende kommando:

diff - width = 5 file file2

Sådan ignorerer du tilfældeforskelle, når du sammenligner filer

Hvis du vil sammenligne to filer, men du er ligeglad med, om bogstaverne er de samme mellem de to filer, kan du bruge følgende kommando:

diff -i file1 file2

Sådan ignorerer du efterfølgende hvide rum i slutningen af ​​en linje

Hvis man sammenligner filerne, bemærker du masser af forskelle, og forskellene er forårsaget af hvidt rum i slutningen af ​​linjerne, du kan udelade disse som vist som ændringer ved at køre følgende kommando:

diff -Z file1 file2

Sådan ignorerer du alle hvide rumforskelle mellem to filer

Hvis du kun er interesseret i teksten i en fil, og du er ligeglad med, om der er flere mellemrum i den ene end den anden, kan du bruge følgende kommando:

diff -w file1 file2

Sådan ignorerer du tomme linjer, når du sammenligner to filer

Hvis du er ligeglad med at en fil kan have ekstra tomme linjer i det, så kan du sammenligne filerne ved hjælp af følgende kommando:

diff -B file1 file2

Resumé

Du kan finde flere oplysninger ved at læse manualen til diff-kommandoen.

mand diff

Diff-kommandoen kan bruges i sin enkleste form for kun at vise forskellene mellem 2 filer, men du kan også bruge den til at oprette en diff-fil som en del af en patchstrategi som vist i denne vejledning til Linux-patch-kommandoen.

En anden kommando, du kan bruge til at sammenligne filer, er cmp-kommandoen som vist i denne vejledning. Dette sammenligner filer byte med byte.