Kako usporediti dvije datoteke u Linuxu

How Compare Two Files Linux



Ako želite usporediti dvije datoteke i dešifrirati razliku, poziva se naredba razl koristi se. Ovaj vodič usmjeren je na pružanje upotrebe razl naredbu s različitim opcijama kako biste dobili razliku između dvije datoteke.

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.txt

Za 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.