Niisiis, kuidas toimib erinevus käsk tegelikult toimib? The erinevus käsk võrdleb kahte faili ja väljastab loendi mõlema faili erinevustest. Täpsemalt annab see nimekirja muudatustest, mis tuleb teha esimeses failis, et see sobiks teise failiga. The erinevus käsku kasutavad ka programmeerijad, et saada plaastrite väljatöötamiseks erinevus kahe lähtekoodifaili vahel.
Enne näidetesse sukeldumist pange tähele, et failide järjestus on väga oluline. Kuna erinevus käsk annab väljundi failide järjekorra alusel.
Kuidas kasutada Linuxis failide võrdlemiseks käsku diff:
Süntaks erinevus käsku mainitakse allpool:
$erinevus [võimalusi] [fail1] [fail2]
Esiteks looge kaks faili. Loon tekstifaile nimega test_fail_1.txt ja test_fail_2.txt . Need failid sisaldavad väikese erinevusega sisu:
Nüüd kasutage erinevuse saamiseks järgmist käsku:
$erinevustest_fail_1.txt test_fail_2.txt
Standardväljundis kuvati read, mis vastavad käsus mainitud failide järjekorrale. Niisiis, dekodeerime väljundi:
Failide võrdlus on märgistatud ja igal sildil on mõlemal küljel number. Vorming on järgmine:
[Faili rea number] [Silt (a, c, d)] [Faili 2 rea number]
Seal on kolm silti:
- et - Lisa: lisage esimese faili sisu teise failiga sünkroonimiseks.
- c - Muuda: näitab, et esimese faili sisus on vaja muuta teist faili.
- d - Kustuta: eemaldage esimesest failist sisu, et see sobiks teisega.
2d1 tähistab esimese faili rea number 2 kustutamist, et see vastaks reale number 1 teisele failile.
Sarnaselt 4c3 tähendab muudatuse tegemist esimese faili neljandal real, et see vastaks teise faili reale number 3, kuna mõlemad read on veidi erinevad.
Erinevuse vaatamiseks on veel üks meetod, kasutage erinevus käsku koos -ja valik:
$erinevus -ja -IN 60test_fail_1.txt test_fail_2.txt
Ülaltoodud väljundis on sisu test_fail_1.txt kuvatakse vasakul küljel, samas kui sisu text_file_2.txt kuvatakse paremal küljel. Erinevust näitavad sümbolid:
- | - Teises failis on rida erinev
- > - Rida on teises failis täiendav
- <— Line has been deleted from the second file
-W tähistab kahe faili sisu vahelist laiust. Eraldi hankimiseks ja erinevuse vaatamiseks kasutage järgmist.
$erinevus -ja -IN 60 --suppress-common-linestest_fail_1.txt test_fail_2.txt
Kuidas saada väljundit ühel real, kasutades käsku diff:
Kui märgistatud meetodit on teil raske dekodeerida, on olemas lihtsam lähenemisviis. Kasutades -q valik koos erinevus käsk annab teile väljundi ühes reas. Noh, ilma lisateabeta:
$erinevus -qtest_fail_1.txt test_fail_2.txt
Kui failid erinevad, annab ülaltoodud käsk väljundi. Kui failid on identsed, siis väljundit ei toimu. Selle demonstreerimiseks loon koopia test_fail_1.txt kasutades:
$cptest_fail_1.txt test_fail_3.txt
Nimega luuakse uus fail test_fail_3.txt sisaldab sama sisu, mida test_fail_1.txt on. Nüüd kasutage:
$erinevus -qtest_fail_1.txt test_fail_2.txt
Kuna mõlemal failil on sarnane sisu, siis pole ka väljundit.
Failide erinevuse kontrollimine kontekstirežiimis, kasutades käsku diff:
Kontekstirežiimis võrdluse saamiseks kasutage -c valikut kasutatakse koos erinevus käsk:
$erinevus -ctest_fail_1.txt test_fail_2.txt
Lahkame väljundi.
Erinevuse säilitamiseks tähistatakse esimest faili *** koos loomise kuupäeva ja kellaajaga, teist faili tähistab -.
Järgmine rida tähistab ridade vahemikku, mida võrreldakse. Esimese faili puhul on see *** 1,6 **** ja teise faili puhul see on -1,5- :
Erinevust näitavad sümbolid:
- +: Rida ei ole esimeses failis. Sisestage see esimesse faili või eemaldage see teisest failist, et need sobiksid mõlema failiga.
- -: rida on esimeses failis, kuid teises failis mitte. Proovige see teise faili sisestada või eemaldada esimesest, et need mõlemad failid sobiksid.
- ! : Rida vajab sobitamiseks muutmist.
Kuidas kontrollida failide erinevust ühendatud režiimis, kasutades käsku diff:
Ühtne režiim on kontekstirežiimiga üsna sarnane, kuid ilma üleliigse teabeta. Meie kasutatav lipp on -u :
$erinevus -utest_fail_1.txt test_fail_2.txt
Väljundis on esimene fail tähistatud - ja teine +++. Teine rida näitab mõlema faili võrdlemiseks mõeldud ridade arvu, seejärel kustutatavat, lisatavat või muudetavat sisu koos nendega tähistatud sümbolitega. Mõlemas failis ei ole sarnaste ridadega sümbolit.
Kuidas ignoreerida tõstutundlikkust diferentseeritud käsu kasutamisel:
Kui soovite faile võrrelda, jättes tähelepanuta väiketähed, siis kasutage -mina lipp:
$erinevus -minatest_fail_1.txt test_fail_2.txtDemonstreerimiseks olen teinud D kohta Deepin esimeses failis väike:
Nagu esimeses käsus näha, on erinevus märgitud; kasutamise ajal -mina see vahe on eemaldatud.
Mõned muud kasulikud valikud erinevus käsk on loetletud allpool:
Valik | Kirjeldus |
---|---|
-juurde | See suvand käsitleb kõiki faile tekstifailidena |
-B | See eirab muudatusi, kus kõik read on tühjad |
-JA | See suvand eirab vahelehtede laiendamist |
-Mina | See ignoreerib muudatusi, kus kõik read kattuvad |
-s | Annab väljundi, kui kaks faili on identsed |
-sisse | See ignoreerib kogu tühikut |
-KOOS | See ignoreerib tühikuid rea lõpus |
Kuidas kasutada Vim Editori kahe faili võrdlemiseks:
Teine meetod kahe faili võrdlemiseks on vimdiff käsk. Selleks peate installima vim:
$sudoasjakohanepaigaldada ma tulin
Kahe faili võrdlemiseks kasutage järgmist:
$vimdiff test_fail_1.txt test_fail_2.txt
Mõlemad failid avatakse kõrvuti. Osa, mis ei sobi, tõstetakse esile:
Kuidas võrrelda kahte faili, kasutades kolordifti:
Teine lähenemisviis on omamoodi laiendus erinevus käsk. Saate muuta võrdluse paremini tuvastatavaks, lisades sellele värve. Paigaldamiseks kasutage:
$sudoasjakohanepaigaldadacolordiff
Failide võrdlemiseks kasutage:
$colordiff test_fail_1.txt test_fail_2.txt
Saate asendada erinevus koos colordiff standardväljundi saamiseks erinevus käsk värvilises vormingus.
Järeldus:
Failide võrdlemiseks Linuxis ja isegi macOS -is nimetatakse utiliiti diff. Dif -utiliit võrdleb kahte faili ja annab teavet nende kahe faili erinevuste kohta. Arendajad kasutavad patch -failide loomiseks peamiselt käsku diff.
Selles juhendis arutasime põhjalikult erinevus käsk ja kuidas seda kasutada kahe faili võrdlemiseks erinevate valikutega. Õppisime ka kasutama colordiff failide erinevuste äratuntavamaks muutmiseks. Kui aga terminalipõhist utiliiti on teil raske kasutada, on olemas ka mõned GUI-põhised tööriistad, näiteks Kompare, DiffMerge, Meld-Diff Tool ja Diffuse-GUI Giff Tool.