I Linux-verdenen er administrasjon og sammenligning av filer en vanlig oppgave for systemadministratorer og utviklere. Evnen til å sammenligne filer linje for linje er avgjørende for å identifisere forskjeller, feilsøke kode og sikre integriteten til data. Et kraftig verktøy som letter denne prosessen erdiff>
kommando. I denne artikkelen vil vi utforske hvordan du brukerdiff>
kommando for å sammenligne filer linje for linje i Linux.
Innholdsfortegnelse
- Grunnleggende syntaks for diff-kommando
- Alternativer tilgjengelig i diff Command
- Praktisk implementering av hvordan sammenligne filer linje for linje i Linux? :
- Sammenligning av to filer
- Slette en linje i filer med diff-kommando
- Vise forskjeller i kontekstmodus
- Vise forskjeller i enhetlig modus
- Uavhengig av store og små bokstaver Sammenligning mellom filer
- Viser diff-versjon
Forstå diff-kommandoen
diff står for forskjell .Dediff>
command er et allsidig verktøy som er forhåndsinstallert på de fleste Linux-distribusjoner. Dens primære formål er å sammenligne innholdet i to filer og vise forskjellene mellom dem. Kommandoen gir en omfattende måte å fremheve endringer, tillegg og slettinger i et klart og lesbart format.
Denne kommandoen brukes til å vise forskjellene i filene ved å sammenligne filene linje for linje. I motsetning til sine medmedlemmer, cmp og komm , forteller den oss hvilke linjer i en fil som skal endres for å gjøre de to filene identiske.
Det som er viktig å huske er det diff bruker visse spesielle symboler og bruksanvisning som kreves for å gjøre to filer identiske. Den forteller deg instruksjonene om hvordan du endrer den første filen for å få den til å matche den andre filen.
Grunnleggende syntaks for diff-kommando
Den grunnleggende syntaksen tildiff>
kommandoen er som følger:
diff [OPTION]... FILE1 FILE2>
Her, ` FILE1`>
og ` FILE2`>
er de to filene du vil sammenligne.
Den ` OPTION`>
flagg lar deg tilpasse virkemåten til ` diff`>
kommando.
Alternativer tilgjengelig i diff Command
Alternativ | Beskrivelse |
---|---|
| Utdataforskjeller i kontekstmodus |
| Utgangsforskjeller i enhetlig modus (mer konsis) |
| Utfør en sammenligning uten store og små bokstaver |
–ignorer-alt-rom | Ignorer mellomrom når du sammenligner linjer |
-kort | Utdata bare om filene er forskjellige, ingen detaljer |
-tilbakevendende | Sammenlign kataloger rekursivt |
| Vis utdataene i et side-ved-side-format |
Praktisk implementering av hvordan sammenligne filer linje for linje i Linux? :
Sammenligning av to filer
Sammenlign filer linje for linje i Linux.
La oss si at vi har to filer med navn a.txt og b.txt som inneholder 5 indiske stater.
cat a.txt cat b.txt>

visning av innhold i filer ved hjelp av cat-kommando
Nå, ved å bruke diff-kommando uten noe alternativ, får vi følgende utgang:
diff a.txt b.txt>

sammenligne fil linje for linje i linux
La oss ta en titt på hva denne utgangen betyr. Den første linjen i diff utdata vil inneholde:
- Linjenummer som tilsvarer den første filen,
- Et spesielt symbol og
- Linjenummer som tilsvarer den andre filen.
Som i vårt tilfelle, 0a1 som betyr etter linjer 0 (helt i begynnelsen av filen) må du legge til Tamil Nadu for å matche den andre fillinje nummer 1. Den forteller oss deretter hva disse linjene er i hver fil med symbolet foran:
- Linjer innledet av en < er linjer fra den første filen.
- Linjer innledet av > er linjer fra den andre filen.
- Neste linje inneholder 2,3c3 som betyr at fra linje 2 til linje 3 i den første filen må endres for å matche linje nummer 3 i den andre filen. Den forteller oss deretter linjene med symbolene ovenfor.
- De tre strekene (—) bare skille linjene i fil 1 og fil 2.
Som et sammendrag for å gjøre begge filene identiske, legg først til Tamil Nadu i den første filen helt i begynnelsen for å matche linje 1 i andre fil etter det endre linje 2 og 3 i første fil, dvs. Uttar Pradesh og Kolkata med linje 3 i andre fil, dvs. Andhra Pradesh . Etter det endrer du linje 5 i første fil, dvs. Jammu og Kashmir med linje 5 i andre fil, dvs. Uttar Pradesh .
Slette en linje i filer med diff-kommando
Vurder scenariet hvordiff>
indikerer behovet for å slette en linje. Gitt to filer,a.txt>
ogb.txt>
:

visning av innhold i filer ved hjelp av cat-kommando
diff a.txt b.txt>

Slette en linje i fil
Her ovenfor utgang 3d2 betyr sletting av linje 3 i første fil, dvs. Telangana slik at begge filene Synkroniser på linje 2.
Vise forskjeller i kontekstmodus
For å se forskjeller i kontekstmodus, bruk -c alternativ. La oss prøve å forstå dette med eksempel, vi har to filer fil1.txt og fil2.txt :
string.replaceall java

visning av innhold i filer ved hjelp av cat-kommando
diff -c file1.txt file2.txt>

Se forskjell i kontekstmodus
I utgangen ovenfor:
- Den første filen er merket med `
***`>
, og den andre filen er merket med `---`>
. - Linjen med `
***************`>
fungerer som en separator. - De to første linjene gir informasjon om fil 1 og fil 2, og viser filnavn, endringsdato og endringstidspunkt.
- Etter det, tre stjerner `
***`>
etterfølges av et linjeområde fra den første filen (linje 1 til 4). Fire stjerner `****`>
kom neste. Innholdet i den første filen vises deretter med spesifikke indikatorer:- Hvis en linje er uendret, settes den foran med to mellomrom.
- Hvis en linje må endres, settes den foran med et symbol og et mellomrom. Symbolene indikerer:
-
`+`>
: En linje i den andre filen som skal legges til den første filen for identiske resultater. -
`-`>
: En linje i den første filen som skal slettes for identiske resultater.
-
- Tre streker `
---`>
etterfølges av et linjeområde fra den andre filen (linje 1 til 4), atskilt med komma. Fire streker `----`>
følg, og innholdet i den andre filen vises.
Vise forskjeller i enhetlig modus
For å se forskjeller i enhetlig modus, bruk -i alternativ. Det ligner på kontekstmodus, men det viser ingen overflødig informasjon eller den viser informasjonen i kortfattet form.

vise innhold av filer ved hjelp av cat-kommando
diff -u file1.txt file2.txt>

Visningsforskjell i enhetlig modus
I utgangen ovenfor:
- Den første filen er indikert med `
---`>
, og den andre filen er indikert med `+++`>
. - De to første linjene gir informasjon om fil 1 og fil 2, inkludert endringsdato og -klokkeslett.
- Etter det, `
@@ -1>
`,`>
4 +1`>
,`>
4 @@`>
angir linjeområdet for begge filene. I dette tilfellet representerer den linjene 1 til 4 i begge filene. - De påfølgende linjene representerer innholdet i filene med spesifikke indikatorer:
- Uendrede linjer vises uten prefiks.
- Linjer i den første filen som skal slettes er prefiks med
->
. - Linjer i den andre filen som skal legges til, er prefiks med
+>
.
I dette eksemplet indikerer utdata at for å gjøre begge filene identiske, må linjene som inneholder mv og comm slettes fra den første filen (file1.txt>
), og linjene som inneholder diff og comm må legges til den.
Uavhengig av store og små bokstaver Sammenligning mellom filer
Som standard, ` diff`>
skiller mellom store og små bokstaver. For å utføre en sammenligning uten store og små bokstaver, bruk ` -i`>
alternativ:

visning av innhold i filer ved hjelp av cat-kommando
Dediff>
kommandoen brukes deretter til å sammenligne disse filene med-i>
alternativet, som gjør sammenligningen ufølsom for store og små bokstaver.
diff -i file1.txt file2.txt>

Uavhengig av store og små bokstaver Sammenligning
2d1>
: Dette indikerer en endring i linje 2 i den første filen (file1.txt>
). Ded>
står for delete, og det står å slette linje 2 fra den første filen.>
: Denne linjen angir innholdet i linjen som skal slettes. I dette tilfellet er det mv.
3a3>
: Dette indikerer et tillegg i linje 3 i den første filen (file1.txt>
). Dea>
står for add, og det står å legge til en linje ved posisjon 3.>diff>
: Denne linjen representerer innholdet som skal legges til. I dette tilfellet er det diff.
Oppsummert, utdataene forteller oss at for å gjøre begge filene identiske (ignorerer store og små bokstaver), må vi slette linjen som inneholder mv fra den første filen (file1.txt>
) og legg til linjeforskjellen i samme posisjon. Dediff>
kommando, med-i>
alternativet, tillater en sammenligning som ikke skiller mellom store og små bokstaver, slik at den vurderer mv og MV som de samme under analysen.
Viserdiff>
Versjon
For å sjekke versjonen av ` diff`>
installert på systemet ditt, bruk ` --version`>
alternativ:
diff --version>

Viser versjon av diff-kommandoen
Denne kommandoen gir informasjon om versjon, lisensiering og forfattere av ` diff`>
nytte.
Ofte stilte spørsmål om diff Command – FAQs
Hvordan bruker jegdiff>
kommando for å sammenligne to filer linje for linje i Linux?
For å sammenligne to filer linje for linje ved å bruke
diff>
kommandoen, bruk bare følgende syntaks:diff file1.txt file2.txt>Denne kommandoen viser forskjellene mellom de to filene, og fremhever tillegg, slettinger og modifikasjoner.
Kan jeg ignorere mellomromsforskjeller mens jeg sammenligner filer meddiff>
kommando?
Ja, det
diff>
kommandoen gir-w>
eller--ignore-all-space>
alternativet for å ignorere mellomromsforskjeller. For eksempel:diff -w file1.txt file2.txt>Dette er spesielt nyttig når du sammenligner kodefiler der endringer i innrykk eller mellomrom ikke er signifikante.
Hvordan kan jeg lage en patch-fil ved hjelp avdiff>
kommando?
For å lage en patch-fil som representerer forskjellene mellom to filer, bruk
-u>
alternativet og omdirigere utdataene til en fil:diff -u file1.txt file2.txt>mypatch.patch>Den genererte oppdateringsfilen kan brukes senere for å synkronisere en annen fil med endringene.
Hva er det enhetlige formatet idiff>
output, og hvordan er det forskjellig fra kontekstformatet?
Det enhetlige formatet (`
-u`>
alternativ) i `diff`>
output gir en mer kortfattet og lesbar representasjon av forskjeller sammenlignet med kontekstformatet (`-c`>
alternativ). Den viser endringer i en mer kompakt form, noe som gjør det lettere å forstå endringer mellom filer.
Hvordan sammenligner jeg to kataloger rekursivt i Linux ved å brukediff>
kommando?
For å rekursivt sammenligne to kataloger og deres innhold, bruk `
-r`>
eller `--recursive`>
alternativet meddiff>
kommando:diff -r directory1/ directory2/>Denne kommandoen sammenligner alle filene i de angitte katalogene og gir detaljert informasjon om forskjellene.
Konklusjon
I Linux-verdenen er sammenligning av filer en vanlig oppgave for systemadministratorer og utviklere. Den ` diff>
kommando er et hendig verktøy som hjelper i denne prosessen. Denne artikkelen utforsker hvordan du bruker ` diff`>
å sammenligne filer linje for linje i Linux. Den dekker grunnleggende syntaks, viktige alternativer som kontekstmodus og enhetlig modus, og praktiske applikasjoner som å lage oppdateringsfiler og rekursivt sammenligne kataloger. Enten du feilsøker kode eller sikrer filintegritet, forstår og mestrer ` diff`>
kommandoen er avgjørende for effektiv filbehandling i Linux.