Dakle, kako se razl naredba zapravo funkcionira? The razl naredba uspoređuje dvije datoteke i ispisuje popis razlika između obje datoteke. Točnije, daje popis izmjena koje je potrebno unijeti u prvu datoteku kako bi odgovarale drugoj datoteci. The razl naredbu također koriste programeri kako bi dobili razliku između dvije datoteke izvornog koda za razvoj zakrpa.
Prije nego što zaronite u primjere, imajte na umu da je redoslijed datoteka vrlo važan. Jer razl naredba daje izlaz na temelju redoslijeda datoteka.
Kako upotrijebiti naredbu diff u Linuxu za usporedbu datoteka:
Sintaksa datoteke razl naredba je navedena u nastavku:
$razl [mogućnosti] [datoteka1] [datoteka 2]
Prvo stvorite dvije datoteke. Stvaram tekstualne datoteke pod imenom test_file_1.txt i test_file_2.txt . Ove datoteke sadrže sadržaj s malom razlikom:
Sada upotrijebite sljedeću naredbu da biste dobili razliku:
$razltest_file_1.txt test_file_2.txt
Standardni izlaz prikazuje linije koje se podudaraju prema redoslijedu datoteka navedenih u naredbi. Dakle, dekodirajmo izlaz:
Usporedba datoteka označena je, a svaka oznaka ima broj s obje strane. Format je sljedeći:
[Broj retka datoteke 1] [Oznaka (a, c, d)] [Broj retka datoteke 2]
Postoje tri oznake:
- do - Dodaj: Dodajte sadržaj u prvu datoteku za sinkronizaciju s drugom datotekom.
- c - Promjena: Pokazuje da je potrebna izmjena u sadržaju prve datoteke kako bi odgovarala drugoj datoteci.
- d - Izbriši: Uklonite sadržaj iz prve datoteke kako bi se podudarao s drugom.
2d1 označava brisanje broja 2 retka prve datoteke kako bi odgovarao drugoj datoteci iz retka broj 1.
Slično, 4c3 znači promijeniti četvrti redak prve datoteke kako bi se podudarao s redom broj 3 druge datoteke jer se oba retka malo razlikuju.
Postoji još jedna metoda za vidjeti razliku, upotrijebite razl naredba s -i opcija:
$razl -i -U 60test_file_1.txt test_file_2.txt
U gornjem izlazu sadržaj test_file_1.txt je prikazan s lijeve strane, dok je sadržaj u text_file_2.txt prikazuje se s desne strane. Razlika je označena simbolima:
- | - Redak je drugačiji u drugoj datoteci
- > - Red je dodatni u drugoj datoteci
- <— Line has been deleted from the second file
-W označava širinu između sadržaja dviju datoteka. Da biste dobili odvojeno i vidjeli razliku, upotrijebite sljedeće:
$razl -i -U 60 --suppress-common-linestest_file_1.txt test_file_2.txt
Kako postići izlaz u jednom retku pomoću naredbe diff:
Ako vam je označenu metodu teško dekodirati, postoji jednostavniji pristup. Koristiti -q opciju sa razl naredba daje izlaz u jednom retku. No, bez ikakvih dodatnih informacija:
$razl -qtest_file_1.txt test_file_2.txt
Ako se datoteke razlikuju, gornja naredba će dati izlaz. Ako su datoteke identične, neće biti izlaza. Kako bih to pokazao, stvaram kopiju test_file_1.txt koristeći:
$k.čtest_file_1.txt test_file_3.txt
Nova datoteka bit će kreirana pod imenom test_file_3.txt koji sadrži isti sadržaj koji test_file_1.txt ima. Sada upotrijebite:
$razl -qtest_file_1.txt test_file_2.txt
Budući da obje datoteke imaju sličan sadržaj, stoga neće biti izlaza.
Kako provjeriti razliku datoteka u kontekstnom načinu pomoću naredbe diff:
Za usporedbu u kontekstnom načinu, -c opcija će se koristiti s razl naredba:
$razl -ctest_file_1.txt test_file_2.txt
Razdvojimo izlaz.
Kako bi se zadržala razlika, prva datoteka je označena sa *** zajedno s datumom i vremenom stvaranja, dok je druga datoteka označena sa -.
Sljedeći redak označava niz linija razmatranih tijekom usporedbe. Za prvu datoteku jest *** 1,6 **** a za drugu datoteku je —1,5—- :
Razlika je označena simbolima:
- +: Redak nije prisutan u prvoj datoteci. Umetnite je u prvu datoteku ili je uklonite iz druge datoteke kako bi odgovarala objema datotekama.
- -: Red postoji u prvoj datoteci, ali ne i u drugoj datoteci. Pokušajte je umetnuti u drugu datoteku ili je ukloniti iz prve kako bi odgovarala objema datotekama.
- ! : Liniju je potrebno izmijeniti kako bi se podudarala.
Kako provjeriti razliku datoteka u jedinstvenom načinu pomoću naredbe diff:
Objedinjeni način rada prilično je sličan kontekstnom načinu rada, ali bez suvišnih informacija. Zastava koju koristimo je -u :
$razl -utest_file_1.txt test_file_2.txt
U izlazu je prva datoteka označena sa -, a druga sa +++. Drugi redak prikazuje broj redaka razmatranih za usporedbu u obje datoteke, zatim sadržaj koji se briše, dodaje ili mijenja s simbolima s njima. U obje datoteke neće biti simbola sa sličnim redovima.
Kako zanemariti osjetljivost velikih i malih slova dok koristite naredbu diff:
Ako želite usporediti datoteke zanemarujući osjetljivost velikih i malih slova, upotrijebite -i zastava:
$razl -itest_file_1.txt test_file_2.txtZa demonstraciju sam napravio D od Duboko u u prvoj datoteci mala:
Kao što se vidi u prvoj naredbi, razlika je naznačena; dok koristite -i ta razlika je uklonjena.
Neke druge korisne opcije razl naredbe su navedene ispod:
Opcija | Opis |
---|---|
-do | Ova opcija tretira sve datoteke kao tekstualne datoteke |
-B | Zanemaruje izmjene gdje su sve linije prazne |
-I | Ova opcija zanemaruje proširenje kartica |
-Ja | Zanemaruje promjene u kojima se podudaraju sve linije |
-s | Daje izlaz kada su dvije datoteke identične |
-u | Zanemaruje cijeli bijeli prostor |
-S | Zanemaruje bijeli prostor na kraju retka |
Kako upotrijebiti Vim Editor za usporedbu dviju datoteka:
Druga metoda za usporedbu dviju datoteka je korištenje vimdiff naredba. Da biste to učinili, morate imati instaliran vim:
$sudoprikladaninstalirati došao sam
Sada za usporedbu dvije datoteke upotrijebite:
$vimdiff test_file_1.txt test_file_2.txt
Obje datoteke bit će otvorene jedna do druge. Dio koji se ne podudara bit će označen:
Kako usporediti dvije datoteke pomoću colordiffa:
Drugi pristup je svojevrsno proširenje razl naredba. Usporedbu možete učiniti prepoznatljivijom dodavanjem boja. Za instalaciju koristite:
$sudoprikladaninstaliraticolordiff
Za usporedbu datoteka upotrijebite:
$colordiff test_file_1.txt test_file_2.txt
Možete zamijeniti razl s colordiff da biste dobili standardni izlaz razl naredba u obojenom formatu.
Zaključak:
Za usporedbu datoteka u Linuxu, pa čak i u macOS -u, koristi se pomoćni program diff. Pomoćni program diff uspoređuje dvije datoteke i daje informacije o razlikama između dviju datoteka. Programeri prvenstveno koriste naredbu diff za stvaranje datoteka zakrpa.
U ovom vodiču detaljno smo raspravljali o razl naredbu i kako je koristiti za usporedbu dviju datoteka s različitim opcijama. Također smo naučili koristiti colordiff kako bi razlike u datotekama bile prepoznatljivije. No ako vam je teško koristiti pomoćni program temeljen na terminalu, postoje i neki alati temeljeni na grafičkom sučelju, poput Kompare, DiffMerge, Meld-Diff Tool i Diffuse-GUI Giff Tool.