Linux Diff -komento

Linux Diff Komento



Ero on todennäköisemmin käsite tai tunne, joka voi erottaa yhden asian toisesta. 'Diff'-komento viittaa muunnelmaan. Analysoimalla asiakirjoja rivi riviltä tämä työkalu näyttää tiedostojen väliset erot. Se ilmoittaa meille, mitä yhden asiakirjan osia on muutettava, jotta asiakirjat saadaan samankaltaisia, toisin kuin sen täydentävät elementit cmp ja comm. Olennaista on muistaa, että jotta asiakirjat olisivat samanlaisia, diff käyttää erityisiä erikoissymboleja ja komentoja. Sinulle annetaan ohjeet ensimmäisen asiakirjan muokkaamiseen niin, että se on yhdenmukainen toisen asiakirjan kanssa. Tässä oppaassa käsittelemme 'diff'-komennon käyttöä Ubuntu 20.04:ssä Linux-päätettä käyttäen.

Olemme luoneet kaksi tekstitiedostoa järjestelmämme työkansioon.









On aika käyttää 'diff'-komentoa kyselyalueella nähdäksesi eron molempien tiedostojen välillä. Kokeilemme tätä 'diff'-ohjetta molemmilla tiedostonimillä peräkkäin, eli ensin one.txt ja sitten kaksi.txt-tiedosto. 'diff' -komennon suoritus näyttää meille eron molempien tiedostojen välillä seuraavasti:



  • Rivinumerot ensimmäisen tekstitiedoston mukaan.
  • Erikoismerkit/symbolit kertovat meille erosta, kuten muuta, lisää, poista.
  • Rivinumerot toisen tekstitiedoston mukaan.

Ensimmäisessä kuvassamme käsittelemme 'a'-symbolia 'diff'-komennon ulostulon rivinumeroiden joukossa; 'a' käytetään lyhenteenä 'Lisää'. 'Cat'-käskyn käyttö molemmilla tiedostonimillä kyselyalueella näyttää kunkin tekstitiedoston sisällön, eli one.txt ja two.txt. Ensimmäisessä tiedostossa on yhteensä 4 riviä, kun taas toisessa tiedostossa on 5 riviä. Rivi 1 on ylimääräinen.





Sitten kokeilemme 'diff'-käskyä päätekyselyalueella ja sen jälkeen tiedostojen nimet - one.txt ja two.txt. Tämän käskyn suoritus näyttää '0a1' tulosteena yhdessä rivin 1 kanssa toisesta tiedostosta, joka on ylimääräinen rivi toisessa tiedostossa. Numeroarvoa '0' käytetään rivillä 0 tai ennen riviä 1 ensimmäisen tiedoston eli one.txt:n kohdalla. Symboli 'a' tarkoittaa 'lisää'. Lopuksi numeroarvo '1' tarkoittaa toisen tiedoston ensimmäistä riviä. Sekoitustulos '0d1' tarkoittaa, että toisen tiedoston 'two.txt' rivi 1 tulee lisätä ensimmäisen tiedoston 'one.txt' yläosaan ennen kuin ensimmäinen rivi kaksi tekee molemmista tiedostoista samanlaisia.



Nyt päivitämme molemmat tiedostot nähdäksemme toisen kuvan. Ensimmäinen tiedosto 'one.txt' sisältää 4 riviä ja toinen tiedosto 'two.txt' sisältää vain 3 riviä. Ainoa ero näissä tiedostoissa on ylimääräisen rivin käyttö ensimmäisessä tiedostossa, eli rivi 1 = 'maanantai', jota ei ole toisessa tiedostossa. Kun olet kokeillut 'diff'-ohjetta päivitetyille tekstitiedostoille, saamme tulokseksi '1d0'. Ja ensimmäinen rivi ensimmäisestä tiedostosta tulee näkyviin. Kohdassa '1d0' 1 tarkoittaa, että ensimmäinen rivi tiedostosta 'one.txt' on poistettava (symbolin 'd' mukaisesti) ja 0 tarkoittaa, että toinen tiedosto ei päivitetty. Lopulta rivi 1 ensimmäisestä tiedostosta 'one.txt' näytetään selkeän eron vuoksi.

Samoin 'diff'-komento voi näyttää eron kahden tiedoston rivien välillä. Siksi päivitämme molemmat tekstitiedostot vielä kerran. Tällä kertaa ensimmäinen tiedosto sisältää 5 riviä, kun taas toinen tiedosto sisältää vain 4. Ainoa ero on ylimääräisen rivin käyttö one.txt-tiedostossa, joka on rivi 3. Päätteen molemmissa tiedostoissa käytetty diff-komento näyttää tulosta '3d2' yhdessä rivin 3 kanssa ensimmäisestä tiedostosta 'one.txt'. Tämä tulos osoittaa, että rivi 3 ensimmäisestä tiedostosta 'one.txt' tulee poistaa, jotta voimme synkronoida molemmat tiedostot toisen tiedoston rivillä 2. Erilainen rivi '3' näytetään, jotta voimme saada selkeän käsityksen erosta.

Katsotaanpa tulosta selkeämmin ja syvällisemmin. Seuraavan kuvan tulos 1,5c1,2 osoittaa, että ensimmäisen tiedoston (one.txt) rivit 1-5 tulee vaihtaa toisen tiedoston (two.txt) riveillä 1-2. Se tarkoittaa, että one.txt-tiedoston ensimmäiset 5 riviä (1-5) tulee muuttaa ja korvata kahdella ensimmäisellä rivillä (1, 2) toisessa tiedostossa 'two.txt', jotta se olisi sama. Lopulta kaikki 5 riviä ensimmäisestä tiedostosta näytetään, jotka tulee korvata toisen tiedoston näytetyillä kahdella rivillä. Näin symboli 'c' kertoo eron kahden tiedoston välillä – mikään rivi ei ole sama molemmissa tiedostoissa.

'diff'-komennon avulla voit saada sen tulosteen kontekstimuodossa. Kuvittele, että sinulla on samat kaksi tiedostoa, joissa on seuraavat tiedot. Tulosteen konteksti olisi näyttää pääasiallinen ero seuraavassa kuvassa esitettyjen yksinkertaisten tiedostojen välillä. Nyt meillä on 5 riviä ensimmäisessä tiedostossa 'one.txt' ja 4 riviä toisessa tiedostossa 'two.txt'.

Saadaksemme 'diff'-käskyn kontekstipohjaisen tulosteen, meidän on käytettävä '-c'-vaihtoehtoa 'diff'-komennossa. Käyttämällä aiemmin päivitettyjä tiedostoja tässä 'diff'-komennossa, saamme seuraavan tulosteen - päivämäärä, päivä sekä lisätiedot tiedostojen tekstin luomisesta. 5 riviä one.txt-tiedostoista näytetään. Erityisesti sen kolmas rivi on korostettu '-'-merkillä lisätäksesi sen toiseen tiedostoon.

Johtopäätös

Yritimme selittää lyhyesti kaiken 'diff'-ohjeesta. Tätä varten päivitimme tekstitiedostomme joka kerta ja saimme päivitetyn tulosteen tiedoston tietojen lisäämistä, poistamista ja muuttamista varten. Esittelyssä selitettiin 'diff'-komennon käyttötarkoitus Linuxissa ja kuinka sitä käytetään Linuxissa.