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.