Kuinka verrata kahta tiedostoa Linuxissa

How Compare Two Files Linux



Jos haluat verrata kahta tiedostoa ja tulkita eron, kutsu komento ero käytetään. Tämä opas keskittyy tarjoamaan sinulle käyttö ero komento eri vaihtoehdoilla saadaksesi ero kahden tiedoston välillä.

Joten, miten ero komento todella toimii? The ero komento vertaa kahta tiedostoa ja antaa luettelon eroista tiedostojen välillä. Tarkemmin sanottuna se antaa luettelon muutoksista, jotka on tehtävä ensimmäiseen tiedostoon vastaamaan toista tiedostoa. The ero Ohjelmoijat käyttävät myös komentoa saadakseen eron kahden lähdekooditiedoston välillä korjaustiedostojen kehittämiseksi.







Ennen kuin sukellat esimerkkeihin, huomaa, että tiedostojen järjestys on erittäin tärkeä. Koska ero komento antaa tuloksen tiedostojen järjestyksen perusteella.



Kuinka käyttää diff -komentoa Linuxissa tiedostojen vertaamiseen:

Syntaksi ero komento mainitaan alla:



$ero [vaihtoehtoja] [tiedosto 1] [tiedosto2]

Luo ensin kaksi tiedostoa. Luon tekstitiedostoja nimellä test_file_1.txt ja test_file_2.txt . Nämä tiedostot sisältävät sisältöä pienillä eroilla:





Käytä nyt seuraavaa komentoa saadaksesi eron:



$erotest_file_1.txt test_file_2.txt

Vakiolähtö näytti rivit, jotka vastaavat komennossa mainittujen tiedostojen järjestystä. Joten dekoodataan lähtö:

Tiedostojen vertailu on merkitty, ja jokaisessa tarrassa on numero kummallakin puolella. Muoto on seuraava:

[Tiedoston rivinumero 1] [Tunniste (a, c, d)] [Tiedoston 2 rivinumero]

Tarroja on kolme:

  • kohteeseen - Lisää: Lisää sisältöä ensimmäiseen tiedostoon synkronoidaksesi toisen tiedoston kanssa.
  • c - Muuta: Osoittaa, että ensimmäisen tiedoston sisältöä on muutettava vastaamaan toista tiedostoa.
  • d - Poista: Poista sisältö ensimmäisestä tiedostosta vastaamaan toista tiedostoa.

2d1 osoittaa ensimmäisen tiedoston rivin 2 poistamista vastaamaan toista tiedostoa riviltä 1.

Samoin, 4c3 tarkoittaa muutosta ensimmäisen tiedoston neljännessä rivissä vastaamaan toisen tiedoston riviä 3, koska molemmat rivit ovat hieman erilaisia.

On toinen tapa nähdä ero, käytä ero komento näppäimellä -ja vaihtoehto:

$ero -ja -SISÄÄN 60test_file_1.txt test_file_2.txt

Yllä olevassa tuotoksessa sisältö test_file_1.txt näkyy vasemmalla puolella, kun taas sisällön text_file_2.txt näkyy oikealla puolella. Ero on merkitty symboleilla:

  • | - Rivi on erilainen toisessa tiedostossa
  • > - Rivi on lisätty toisessa tiedostossa
  • <— Line has been deleted from the second file

-W osoittaa leveyden kahden tiedoston sisällön välillä. Jos haluat päästä eroon ja tarkastella eroa, käytä seuraavaa:

$ero -ja -SISÄÄN 60 --suppress-common-linestest_file_1.txt test_file_2.txt

Tuloksen saaminen yhdelle riville diff -komennolla:

Jos merkittyä menetelmää on vaikea purkaa, on olemassa yksinkertaisempi tapa. Käyttämällä -q vaihtoehto näppäimellä ero komento antaa tuloksen yhdellä rivillä. No ilman mitään lisätietoa:

$ero -qtest_file_1.txt test_file_2.txt

Jos tiedostot eroavat toisistaan, yllä oleva komento antaa tuloksen. Jos tiedostot ovat identtisiä, tulostusta ei tule. Sen osoittamiseksi luon kopion test_file_1.txt käyttämällä:

$cptest_file_1.txt test_file_3.txt

Uusi tiedosto luodaan nimellä test_file_3.txt sisältää samaa sisältöä kuin se test_file_1.txt on. Käytä nyt:

$ero -qtest_file_1.txt test_file_2.txt

Koska molemmilla tiedostoilla on samanlainen sisältö, tulostusta ei olisi.

Tiedostojen eron tarkistaminen kontekstitilassa diff -komennolla:

Saadaksesi vertailun kontekstitilassa, -c -vaihtoehtoa käytetään ero komento:

$ero -ctest_file_1.txt test_file_2.txt

Leikataan lähtö.

Eron ylläpitämiseksi ensimmäinen tiedosto on merkitty *** -merkillä yhdessä luomisen päivämäärän ja kellonajan kanssa, kun taas toisessa tiedostossa on -.

Seuraava rivi merkitsee vertailun aikana harkittuja viivoja. Ensimmäiselle tiedostolle se on *** 1.6 **** ja toiselle tiedostolle se on -1,5--- :

Ero on merkitty symboleilla:

  • +: Riviä ei ole ensimmäisessä tiedostossa. Lisää se ensimmäiseen tiedostoon tai poista se toisesta tiedostosta vastaamaan molempia tiedostoja.
  • -: Rivi on ensimmäisessä tiedostossa, mutta ei toisessa. Yritä lisätä se toiseen tiedostoon tai poista se ensimmäisestä vastaamaan molempia tiedostoja.
  • ! : Riviä on muutettava, jotta se sopii yhteen.

Tiedostojen eron tarkistaminen yhtenäistetyssä tilassa diff -komennolla:

Yhdistetty tila on melko samanlainen kuin kontekstitila, mutta ilman tarpeettomia tietoja. Käyttämämme lippu on -u :

$ero -utest_file_1.txt test_file_2.txt

Tulosteessa ensimmäinen tiedosto on merkitty - ja toinen +++. Toinen rivi näyttää molempien tiedostojen vertailukohtana olevien rivien lukumäärän, sitten poistettavan, lisättävän tai muutettavan sisällön ja niiden symbolit. Molemmissa tiedostoissa ei ole symboleja, joilla on samanlaiset rivit.

Kirjainkokoherkkyyden ohittaminen diff -komentoa käytettäessä:

Jos haluat verrata tiedostoja ottamatta huomioon kirjainkoon herkkyyttä, käytä -i lippu:

$ero -itest_file_1.txt test_file_2.txt

Esittelyä varten olen tehnyt D / Syvällä ensimmäisessä tiedostossa pieni:

Kuten ensimmäisessä komennossa näkyy, ero on ilmoitettu; käytön aikana -i se ero on poistettu.

Muutamia muita hyödyllisiä vaihtoehtoja ero komento on lueteltu alla:

Vaihtoehto Kuvaus
-kohteeseen Tämä vaihtoehto käsittelee kaikki tiedostot tekstitiedostoina
-B Se jättää huomiotta muutokset, joissa kaikki rivit ovat tyhjiä
-JA Tämä vaihtoehto ohittaa välilehtien laajennuksen
-Minä Se jättää huomiotta muutokset, joissa kaikki rivit vastaavat
-s Antaa tuloksen, kun kaksi tiedostoa on identtinen
-sisään Se jättää huomiotta kaiken valkoisen tilan
-KANSSA Se jättää tyhjän tilan rivin loppuun

Kuinka käyttää Vim Editoria kahden tiedoston vertaamiseen:

Toinen tapa verrata kahta tiedostoa on vimdiff komento. Tätä varten sinun on asennettava vim:

$sudosopivaAsentaa tulin

Vertaa nyt kahta tiedostoa seuraavasti:

$vimdiff test_file_1.txt test_file_2.txt

Molemmat tiedostot avataan vierekkäin. Osa, joka ei täsmää, korostetaan:

Kahden tiedoston vertaaminen colordiffin avulla:

Toinen lähestymistapa on eräänlainen laajennus ero komento. Voit tehdä vertailusta tunnistettavamman lisäämällä siihen värejä. Asenna käyttämällä:

$sudosopivaAsentaacolordiff

Vertaa tiedostoja käyttämällä:

$colordiff test_file_1.txt test_file_2.txt

Voit korvata ero kanssa colordiff saadaksesi standardin ero komento värillisessä muodossa.

Johtopäätös:

Tiedostojen vertaamiseen Linuxissa ja jopa macOS: ssa käytetään apuohjelmaa nimeltä diff. Diff -apuohjelma vertaa kahta tiedostoa ja antaa tietoja näiden kahden tiedoston eroista. Kehittäjät käyttävät ensisijaisesti diff -komentoa korjaustiedostojen luomiseen.

Tässä oppaassa keskustelimme perusteellisesti ero komento ja miten sitä käytetään kahden tiedoston vertaamiseen eri asetuksilla. Opimme myös käyttämään colordiff jotta tiedostoerot olisivat paremmin tunnistettavissa. Mutta jos päätelaitepohjaista apuohjelmaa on vaikea käyttää, on myös joitain GUI-pohjaisia ​​työkaluja, kuten Kompare, DiffMerge, Meld-Diff Tool ja Diffuse-GUI Giff Tool.