Linux-kommandoer

diff Kommandoeksempler i Linux

diff Kommandoeksempler i Linux
Diff kommandoen er en analyse eller informativ kommando som skriver ut forskjeller mellom filer, analyserer dem linje for linje, eller kataloger rekursivt mens du informerer brukeren om hvilke endringer som er nødvendige for å gjøre filer like, dette punktet er viktig å forstå diff utganger. Denne opplæringen fokuserer på diff-kommandoen.

Før du starter, må du opprette to filer ved hjelp av hvilken som helst tekstredigerer (nano brukes i denne veiledningen) med samme innhold:

# nano diffsample1

Innvendig lim:

 LinuxHint publiserer det beste innholdet for deg 

trykk CTRL+X og Y for å lagre og avslutte.

Opprett en andre fil kalt diffsample2 med samme innhold:

# nano diffsample2

Merk: ta hensyn til mellomrom og faner, filer må være 100% like.

trykk CTRL+X og Y for å lagre og avslutte.

# diff diffsample1 diffsample2

Som du ser er det ingen utdata, du trenger ikke å gjøre noe for å gjøre filer like fordi de allerede er like.

La oss nå redigere filen diffsample2 for å gjøre noen endringer:

# nano diffsample2

La oss så erstatte ordet “innhold” for “tips”:

trykk CTRL+X og Y for å lagre og avslutte.

Kjør nå:

# diff diffsample1 diffsample2

Lar se resultatet:

Utgangen ovenfor, "3c3" betyr "Linje 3 i første fil av skal erstattes for linje 3 i andre fil". Den vennlige delen av utgangen er at den viser oss hvilken tekst som må endres (“innhold for deg”For“tips for deg”)

Dette viser oss at referansen for kommandoforskjellen ikke er den første filen, men den andre, det er derfor den første filen tredje linje (den første 3) må endres (C) som den tredje linjen i den andre filen (andre 3).

Kommandoforskjellen kan vise 3 tegn:

c: denne karakteren instruerer a Endring må gjøres.
en: denne karakteren instruerer noe må være La til.
d: denne karakteren instruerer noe må være Slettet.

De første tallene før et tegn tilhører den første filen, mens tallene etter tegnene tilhører den andre filen.

Symbolet < belongs to the first file and the symbol > til den andre filen som brukes som referanse.

La oss invertere filrekkefølgen, i stedet for å kjøre

# diff diffsample1 diffsample2

løpe:

# diff diffsample2 diffsample1

Du kan se hvordan bestillingen ble invertert, og nå brukes diffsample1-filen som referanse, og den instruerer oss om å endre “tips for deg” for “innhold for deg”, dette var forrige utgang:

La oss nå redigere filen diffsample1 slik:

Fjern alle linjene, bortsett fra den første linjen i filens diffsample1. Så løp:

# diff diffsample2 diffsample1

Siden du brukte filen diffsample1 som referanse, må du slette (som du kan se, for å gjøre filen diffsample2 nøyaktig likd) linje to og tre (2,3) som i første fil og første linje (1) vil være like.

Nå kan vi invertere rekkefølgen og i stedet for å kjøre “# diff diffsample2 diffsample1 ” løpe:

# diff diffsample1 diffsample2

Som du kan se, mens det forrige eksemplet ba oss om å fjerne, instruerer dette oss om å legge til (en) linje 2 og 3 etter første fil første linje (1).

La oss nå jobbe med den saklige følsomheten til dette programmet.

Rediger filen diffsample2 slik:

Og rediger filen diffsample1 som:

Den eneste forskjellen er store bokstaver på filen diffsample2. La oss nå sammenligne det med diff igjen:

# diff diffsample1 diffsample2

Som du kan se forskjeller som er funnet, store bokstaver, unngår vi at diff oppdager store bokstaver, hvis vi ikke er interessert i store og små bokstaver ved å legge til -Jeg alternativ:

# diff -i diffsample1 diffsample2

Ingen forskjeller ble funnet, saksoppdagelsen ble deaktivert.

La oss nå endre utdataformatet ved å legge til alternativet -u brukes til å skrive ut enhetlige utganger:

I tillegg, til dato og klokkeslett, viser produksjonen med a - og + symbol hva som skal fjernes og hva som skal legges til for å gjøre filer like.

I begynnelsen av denne artikkelen sa jeg at mellomrom og faner må være like i begge filene, siden de også blir oppdaget av kommandoforskjellen, hvis vi vil at kommandoforskjellen skal ignorere mellomrom og faner, må vi bruke -w alternativ.

Åpne filen diffsample2 og legg til mellomrom og faner:

Som du ser la jeg til et par faner etter "det beste" i andre linje og også mellomrom i alle linjer, lukk, lagre filen og kjør:

# diff diffsample1 diffsample2

Som du ser, ble det funnet forskjeller i tillegg til store bokstaver. La oss nå bruke alternativet  -w å instruere diff om å ignorere blanke mellomrom:

Som du ser til tross for at tabelldifferansen bare blir funnet som forskjell på store bokstaver.
La oss nå legge til alternativet -i igjen:

#diff -wi diffsample2 diffsample1

Kommandoforskjellen har dusinvis av tilgjengelige alternativer for å ignorere, endre utdata, diskriminere kolonner når de er tilstede osv. Du kan få mer informasjon om disse alternativene ved hjelp av man-kommandoen, eller på http: // mann7.org / linux / man-pages / man1 / diff.1.html. Jeg håper du fant denne artikkelen med forskjellige kommandoeeksempler i Linux nyttig. Fortsett å følge LinuxHint for flere tips og oppdateringer om Linux og nettverk.

Beste Linux Distros for spill i 2021
Linux-operativsystemet har kommet langt fra det originale, enkle, serverbaserte utseendet. Dette operativsystemet har forbedret seg enormt de siste år...
Hvordan fange opp og streame spilløkten din på Linux
Tidligere ble spill bare ansett som en hobby, men med tiden så spillindustrien en enorm vekst når det gjelder teknologi og antall spillere. Spillpubli...
Beste spill å spille med håndsporing
Oculus Quest introduserte nylig den gode ideen om håndsporing uten kontrollere. Med et stadig økende antall spill og aktiviteter som utfører støtte en...