Sådan sammenlignes to tekstfiler ved hjælp af Linux
Hvad skal man vide
- For at sammenligne, kør: diff fil1 fil2
- Vis, hvordan de er forskellige med: diff -q fil1 fil2
- Vis, hvordan de er ens med: diff -s fil1 fil2
Denne artikel forklarer, hvordan du bruger Linux til at sammenligne to filer og udlæse forskellene mellem filerne til skærmen eller en fil. Du vil ikke installere speciel software til at sammenligne filer ved hjælp af Linux, men du skal vide hvordan åbne et terminalvindue.
Opret filerne til sammenligning
Hvis du vil følge med i denne vejledning, skal du oprette to tekstfiler, der indeholder lignende, men forskellig tekst.
Opret den første fil
Opret en fil kaldet fil 1 og indtast derefter følgende tekst:
10 grønne flasker stående på en væg
10 grønne flasker stående på en væg
Hvis en grøn flaske ved et uheld skulle falde
Der ville stå 9 grønne flasker på væggen
Følg disse instruktioner for at oprette denne fil:
-
Åbn filen ved at skrive følgende kommando:
nano fil 1
Den hurtigste måde at åbne et terminalvindue i Linux er at trykke på CTRL+ALT+T nøgler på samme tid.
-
Skriv teksten ind nano-redaktøren.
Trykke CTRL+O for at gemme filen.
Trykke CTRL+X for at afslutte filen.
Opret den anden fil
Derefter skal du oprette en anden fil kaldet fil 2 og indtast følgende tekst:
10 grønne flasker stående på en væg
Hvis 1 grøn flaske ved et uheld skulle falde
Der ville stå 9 grønne flasker på væggen
Følg disse instruktioner for at oprette denne fil:
-
Åbn filen ved at skrive følgende kommando:
nano fil 2
-
Indtast teksten i nano-editoren.
Trykke CTRL+O for at gemme filen.
Trykke CTRL+X for at afslutte filen.
Sådan sammenlignes to filer ved hjælp af Linux
Kommandoen, der bruges i Linux til at vise forskellene mellem to filer, kaldes diff-kommandoen.
Den enkleste form for diff-kommandoen er som følger:
diff fil1 fil2
Hvis filerne er de samme, vises ingen output, når du bruger denne kommando. Men da der er forskelle, ligner outputtet følgende:
2,4c2,3
< 10 grønne flasker stående på væggen
< Hvis én grøn flaske ved et uheld skulle falde
< Der ville stå 9 grønne flasker på væggen
...
> Hvis 1 grøn flaske ved et uheld skulle falde
> Der ville stå 9 grønne flasker på væggen
Til at begynde med virker outputtet forvirrende, men når du først forstår terminologien, er det ret logisk.

Forskellene mellem de to filer er som følger:
- Den anden fil har kun tre linjer. Den første fil har fire.
- Den anden fil siger 1 grøn flaske på tredje linje. Den første fil siger en grøn flaske.
- Den anden fil siger det røde i stedet for der ville på den sidste linje.
Outputtet fra diff-kommandoen viser, at der er forskelle mellem linje to og fire i den første fil og linje to og tre i den anden fil.
Den viser derefter linjerne fra to til fire fra den første fil, efterfulgt af de to forskellige linjer i den anden fil.
Sådan viser du kun, hvis filerne er forskellige
Hvis du kun vil vide, om filerne er forskellige, og du ikke er interesseret i, hvilke linjer der er forskellige, skal du køre følgende kommando:
diff -q fil1 fil2
Hvis filerne er forskellige, vises følgende:
Filer fil1 og fil2 er forskellige
Hvis filerne er de samme, vises intet.
Sådan viser du en besked, hvis filerne er de samme
Når du kører en kommando, vil du måske gerne vide, at den fungerede korrekt. Du ønsker, at der skal vises en meddelelse, når du kører diff-kommandoen, om filerne er ens eller forskellige.
For at opnå dette krav ved hjælp af diff-kommandoen skal du bruge følgende kommando:
diff -s fil1 fil2
Hvis filerne er de samme, vises denne meddelelse:
Filerne fil1 og fil2 er identiske
Sådan producerer du forskellene side om side
Hvis der er flere forskelle, kan det være forvirrende med hensyn til, hvad forskellene faktisk er mellem de to filer. Du kan ændre outputtet af diff-kommandoen, så resultaterne vises side om side. For at gøre dette skal du køre følgende kommando:
diff -y fil1 fil2
Outputtet for filen bruger | symbol for at vise forskellen mellem de to linjer, a < at vise en linje, der er blevet fjernet, og en > for at vise en linje, der er blevet tilføjet.

Når du kører kommandoen ved hjælp af demonstrationsfilerne i denne artikel, vises alle linjerne som forskellige undtagen den sidste linje af fil 2, som vises som slettet.
Begræns kolonnebredde
Når man sammenligner to filer side om side, kan det være svært at læse, hvis filerne har flere kolonner med tekst. For at begrænse antallet af kolonner skal du bruge følgende kommando:
diff --width=5 fil1 fil2
Sådan ignoreres sagsforskelle, når du sammenligner filer
Hvis du vil sammenligne to filer, men du er ligeglad med, om bogstavernes store og små bogstaver er ens mellem de to filer, skal du bruge følgende kommando:
diff -i fil1 fil2
Sådan ignorerer du efterfølgende hvidt mellemrum for enden af en linje
Hvis du bemærker mange forskelle, når du sammenligner filer, og forskellene er forårsaget af hvidt mellemrum i slutningen af linjerne, skal du forhindre disse i at blive vist som ændringer ved at køre følgende kommando:
diff -Z fil1 fil2
Sådan ignoreres alle hvide mellemrumsforskelle 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, så brug følgende kommando:
diff -w fil1 fil2
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 den, kan du sammenligne filerne ved at bruge følgende kommando:
diff -B fil1 fil2
Resumé
Du kan finde mere information ved at læse manual til diff-kommandoen.
mand diff
Diff-kommandoen kan bruges i sin enkleste form til kun at vise forskellene mellem to filer. Du kan også bruge det til at oprette en diff-fil som en del af en patching strategi.
En anden kommando, du kan bruge til at sammenligne filer, er cmp kommandoen. Dette sammenligner filer byte for byte.