logo

Kaip palyginti failus eilutė po eilutės sistemoje Linux | diff komanda

„Linux“ pasaulyje failų tvarkymas ir lyginimas yra įprasta sistemos administratorių ir kūrėjų užduotis. Galimybė lyginti failus eilutė po eilutės yra labai svarbi norint nustatyti skirtumus, derinti kodą ir užtikrinti duomenų vientisumą. Vienas galingas įrankis, palengvinantis šį procesą, yradiff>komandą. Šiame straipsnyje mes išsiaiškinsime, kaip naudotidiff>komandą, norėdami palyginti failus eilutę „Linux“.

Turinys



Skirtumo komandos supratimas

diff reiškia skirtumas .Thediff>komanda yra universali programa, kuri yra iš anksto įdiegta daugumoje Linux platinimų. Pagrindinis jo tikslas yra palyginti dviejų failų turinį ir parodyti jų skirtumus. Komanda suteikia išsamų būdą paryškinti pakeitimus, papildymus ir ištrynimus aiškiu ir skaitomu formatu.

Ši komanda naudojama failų skirtumams parodyti, lyginant failus eilutė po eilutės. Skirtingai nuo kolegų narių, cmp ir comm , ji mums nurodo, kurios vieno failo eilutės turi būti pakeistos, kad abu failai būtų identiški.

Svarbu atsiminti tai skirt naudoja tam tikrus specialūs simboliai ir nurodymus kurių reikia, kad du failai būtų identiški. Jame pateikiamos instrukcijos, kaip pakeisti pirmąjį failą, kad jis atitiktų antrąjį failą.



Pagrindinė diff komandos sintaksė

Pagrindinė sintaksėdiff>komanda yra tokia:

diff [OPTION]... FILE1 FILE2>

Čia, ` FILE1`> ir ` FILE2`> yra du failai, kuriuos norite palyginti.

` OPTION`> vėliavėlė leidžia tinkinti ` elgseną diff`> komandą.



Galimos parinktys skirtingoje komandoje

Parinktis

apibūdinimas

-c>arba--context>

Išvesties skirtumai konteksto režimu

-u>arba--unified>

Išvesties skirtumai unifikuotame režime (glausčiau)

java matematika atsitiktinai

-i>arba--ignore-case>

Atlikite palyginimą be didžiųjų ir mažųjų raidžių

– Ignoruoti visą erdvę

Lygindami linijas, nepaisykite tarpų

– trumpai

Išveda tik tai, ar failai skiriasi, jokios informacijos

– rekursyvus

Rekursyviai lyginkite katalogus

-y>arba--side-by-side>

kas yra objektas java

Rodyti išvestį greta formatu

Praktinis įgyvendinimas Kaip palyginti failus eilutė po eilutės sistemoje Linux? :

Dviejų failų palyginimas

Palyginkite failus eilutė po eilutės sistemoje „Linux“.

Tarkime, kad turime du failus su pavadinimais a.txt ir b.txt kuriame yra 5 Indijos valstijos.

cat a.txt cat b.txt>
failų turinio rodymas naudojant cat komandą

failų turinio rodymas naudojant cat komandą

Dabar, taikydami komandą diff be jokios parinkties, gauname tokią išvestį:

diff a.txt b.txt>
lyginant failą eilutė po eilutės Linux

lyginant failą eilutė po eilutės Linux

Pažiūrėkime, ką reiškia ši išvestis. Pirmoji eilutė skirt išvestyje bus:

  • Eilučių numeriai, atitinkantys pirmąjį failą,
  • Ypatingas simbolis ir
  • Eilučių numeriai, atitinkantys antrąjį failą.

Kaip ir mūsų atveju, 0a1 tai reiškia po to 0 eilutes (pačioje failo pradžioje) turite pridėti Tamil Nadu kad atitiktų antrosios failo eilutės numerį 1. Tada ji mums nurodo, kokios tos eilutės yra kiekviename faile, prieš kurį yra simbolis:

  • Eilučių prieš a < yra eilutės iš pirmojo failo.
  • Prieš eilutes > yra eilutės iš antrojo failo.
  • Kitoje eilutėje yra 2,3c3 o tai reiškia, kad iš 2 eilutės į 3 eilutę pirmame faile reikia pakeisti, kad ji atitiktų antrojo failo 3 eilutę. Tada jis mums nurodo tas eilutes su aukščiau pateiktais simboliais.
  • Trys brūkšniai (-) tiesiog atskirkite 1 ir 2 failo eilutes.

Norėdami, kad abu failai būtų vienodi, pirmiausia pridėkite Tamil Nadu pirmame faile pačioje pradžioje, kad atitiktų antrojo failo 1 eilutę po to pakeiskite pirmojo failo 2 ir 3 eilutes t.y. Utar Pradešas ir Kolkata su antrojo failo 3 eilute t.y. Andra Pradešas . Po to pakeiskite pirmos bylos 5 eilutę t.y. Džamu ir Kašmyras su antrojo failo 5 eilute t.y. Utar Pradešas .

Eilutės ištrynimas failuose naudojant diff komandą

Apsvarstykite scenarijų, kurdiff>rodo, kad reikia ištrinti eilutę. Atsižvelgiant į du failus,a.txt>irb.txt>:

failų turinio rodymas naudojant cat komandą

failų turinio rodymas naudojant cat komandą

diff a.txt b.txt>
Eilutės ištrynimas faile

Eilutės ištrynimas faile

Čia virš išvesties 3d2 reiškia ištrinti pirmo failo 3 eilutę t.y. Telangana kad abu failai sinchronizuoti 2 eilutėje.

Skirtumų peržiūra kontekstiniame režime

Norėdami pamatyti kontekstinio režimo skirtumus, naudokite -c variantas. Pabandykime tai suprasti pavyzdžiu, turime du failus failas1.txt ir failas2.txt :

failų turinio rodymas naudojant cat komandą

failų turinio rodymas naudojant cat komandą

diff -c file1.txt file2.txt>
Skirtumo peržiūra konteksto režimu

Skirtumo peržiūra konteksto režimu

Aukščiau pateiktoje išvestyje:

  • Pirmasis failas žymimas ` ***`> , o antrasis failas žymimas ` ---`> .
  • Linija su ` ***************`> tarnauja kaip separatorius.
  • Pirmosiose dviejose eilutėse pateikiama informacija apie 1 ir 2 failą, rodomas failo pavadinimas, pakeitimo data ir modifikavimo laikas.
  • Po to trys žvaigždutės ' ***`> po jų yra eilutės diapazonas nuo pirmojo failo (nuo 1 iki 4 eilutės). Keturios žvaigždutės ****`> ateik toliau. Tada pirmojo failo turinys rodomas su konkrečiais indikatoriais:
    • Jei eilutė nepakitusi, prieš ją įrašomi du tarpai.
    • Jei eilutę reikia pakeisti, prieš ją rašomas simbolis ir tarpas. Simboliai nurodo:
      • `+`> : antrojo failo eilutė, kuri turi būti pridėta prie pirmojo failo, kad rezultatai būtų identiški.
      • `-`> : pirmojo failo eilutė, kurią reikia ištrinti, kad rezultatai būtų identiški.
  • Trys brūkšniai ` ---`> seka eilučių diapazonas iš antrojo failo (1–4 eilutės), atskirtas kableliu. Keturi brūkšniai ` ----`> sekite ir bus rodomas antrojo failo turinys.

Skirtumų peržiūra vieningu režimu

Norėdami pamatyti skirtumus vieningame režime, naudokite variantas. Tai panašu į kontekstinį režimą, bet tai nerodo jokios perteklinės informacijos arba ji rodo informaciją glausta forma.

failų turinio rodymas naudojant cat komandą

failų turinio rodymas naudojant cat komandą

diff -u file1.txt file2.txt>
Skirtumas matomas vieningu režimu

Skirtumas matomas vieningu režimu

Aukščiau pateiktoje išvestyje:

  • Pirmasis failas žymimas ` ---`> , o antrasis failas žymimas ` +++`> .
  • Pirmosiose dviejose eilutėse pateikiama informacija apie 1 ir 2 failus, įskaitant pakeitimo datą ir laiką.
  • Po to, ` @@ -1> `,`> 4 +1`> ,`> 4 @@`> žymi abiejų failų eilučių diapazoną. Šiuo atveju jis žymi abiejų failų eilutes nuo 1 iki 4.
  • Tolesnėse eilutėse nurodomas failų turinys su konkrečiais indikatoriais:
    • Nepakeistos eilutės rodomos be priešdėlio.
    • Pirmojo failo, kurį reikia ištrinti, eilutės yra priešdėlis->.
    • Antrame faile, kurį reikia pridėti, eilutės yra su+>.

Šiame pavyzdyje išvestis rodo, kad norint, kad abu failai būtų identiški, eilutes, kuriose yra mv ir comm, reikia ištrinti iš pirmojo failo (file1.txt>), ir prie jo reikia pridėti eilutes, kuriose yra diff ir comm.

Didžiosios ir mažosios raidės neskiriamos Failų palyginimas

Pagal numatytuosius nustatymus ` diff`> yra didžiosios ir mažosios raidės. Jei norite palyginti didžiąsias ir mažąsias raides, naudokite ` -i`> variantas:

failų turinio rodymas naudojant cat komandą

failų turinio rodymas naudojant cat komandą

Thediff>Tada komanda naudojama šiems failams palyginti su-i>parinktį, todėl palyginime neskiriamos didžiosios ir mažosios raidės.

diff -i file1.txt file2.txt>
neskiriamas didžiųjų ir mažųjų raidžių lyginimas

neskiriamas didžiųjų ir mažųjų raidžių lyginimas

  • 2d1>: Tai rodo pirmojo failo 2 eilutės pakeitimą (file1.txt>). Thed>reiškia trynimą ir sako, kad reikia ištrinti 2 eilutę iš pirmojo failo.
    • >: Ši eilutė reiškia eilutės, kurią reikia ištrinti, turinį. Šiuo atveju tai yra mv.
  • 3a3>: Tai rodo papildymą pirmojo failo 3 eilutėje (file1.txt>). Thea>reiškia pridėti, o rašoma pridėti eilutę 3 padėtyje.
    • >diff>: ši eilutė rodo turinį, kurį reikia pridėti. Šiuo atveju jis skiriasi.

Apibendrinant, išvestis mums sako, kad norėdami, kad abu failai būtų identiški (nepaisydami didžiųjų ir mažųjų raidžių), turime ištrinti eilutę, kurioje yra mv iš pirmojo failo (file1.txt>) ir toje pačioje vietoje pridėkite linijos skirtumą. Thediff>komandą su-i>parinktis, leidžia palyginti didžiąsias ir mažąsias raides, todėl analizės metu mv ir MV laikomi vienodais.

Rodomadiff>Versija

Norėdami patikrinti ` versiją diff`> įdiegta jūsų sistemoje, naudokite ` --version`> variantas:

diff --version>
Rodoma diff komandos versija

Rodoma diff komandos versija

Ši komanda pateikia informaciją apie ` versiją, licencijavimą ir autorius diff`> naudingumas.

Dažnai užduodami klausimai apie diff komandą – DUK

Kaip aš naudojudiff>komandą, kad palygintumėte du failus eilutė po eilutės sistemoje „Linux“?

Norėdami palyginti du failus eilutė po eilutės, naudodamidiff>komandą, tiesiog naudokite šią sintaksę:

diff file1.txt file2.txt>

Ši komanda parodys skirtumus tarp dviejų failų, paryškindama papildymus, trynimus ir pakeitimus.

Ar galiu nepaisyti tarpų skirtumų lyginant failus sudiff>komandą?

Taip,diff>komanda suteikia-w>arba--ignore-all-space>galimybė nepaisyti tarpų skirtumų. Pavyzdžiui:

diff -w file1.txt file2.txt>

Tai ypač naudinga lyginant kodo failus, kuriuose įtraukos ar tarpų pakeitimai nėra reikšmingi.

Kaip sukurti pataisos failą naudojantdiff>komandą?

Norėdami sukurti pataisos failą, atspindintį dviejų failų skirtumus, naudokite-u>parinktį ir peradresuokite išvestį į failą:

diff -u file1.txt file2.txt>mypatch.patch>

Sugeneruotas pataisos failas gali būti pritaikytas vėliau, norint sinchronizuoti kitą failą su pakeitimais.

Koks yra unifikuotas formatasdiff>išvestis ir kuo ji skiriasi nuo kontekstinio formato?

Vieningas formatas (` -u`> parinktis) ' diff`> išvestis pateikia glaustesnį ir įskaitomesnį skirtumų vaizdą, palyginti su konteksto formatu (` -c`> variantas). Pakeitimai rodomi kompaktiškesne forma, todėl lengviau suprasti failų pakeitimus.

Kaip rekursyviai palyginti du „Linux“ katalogus naudojantdiff>komandą?

Norėdami rekursyviai palyginti du katalogus ir jų turinį, naudokite ` -r`> arba ` --recursive`> variantas sudiff>komanda:

diff -r directory1/ directory2/>

Ši komanda palygina visus failus nurodytuose kataloguose ir pateikia išsamią informaciją apie skirtumus.

ssis pamoka

Išvada

„Linux“ pasaulyje failų palyginimas yra įprasta sistemos administratorių ir kūrėjų užduotis. ` diff> komanda yra patogus įrankis, padedantis šiame procese. Šiame straipsnyje nagrinėjama, kaip naudoti ` diff`> norėdami palyginti failus eilutę „Linux“. Ji apima pagrindinę sintaksę, svarbias parinktis, pvz., kontekstinį režimą ir vieningą režimą, ir praktines programas, tokias kaip pataisų failų kūrimas ir rekursyvus katalogų palyginimas. Nesvarbu, ar derinate kodą, ar užtikrinate failo vientisumą, suprantate ir įvaldote „ diff`> komanda yra būtina norint efektyviai valdyti failus Linux sistemoje.