logo

Kako primerjati datoteke vrstico za vrstico v Linuxu | diff ukaz

V svetu Linuxa je upravljanje in primerjanje datotek pogosta naloga sistemskih skrbnikov in razvijalcev. Zmožnost primerjanja datotek vrstico za vrstico je ključnega pomena za prepoznavanje razlik, odpravljanje napak v kodi in zagotavljanje celovitosti podatkov. Eno močno orodje, ki olajša ta proces, jediff>ukaz. V tem članku bomo raziskali, kako uporabljatidiff>ukaz za primerjavo datotek vrstico za vrstico v Linuxu.

Kazalo



Razumevanje ukaza diff

diff pomeni Razlika .Thediff>ukaz je vsestranski pripomoček, ki je vnaprej nameščen v večini distribucij Linuxa. Njegov glavni namen je primerjati vsebino dveh datotek in prikazati razlike med njima. Ukaz ponuja celovit način za označevanje sprememb, dodatkov in izbrisov v jasni in berljivi obliki.

Ta ukaz se uporablja za prikaz razlik v datotekah s primerjavo datotek vrstico za vrstico. Za razliko od svojih sočlanov, cmp in sporočila , nam pove, katere vrstice v eni datoteki je treba spremeniti, da bosta datoteki enaki.

Pomembno si je zapomniti, da razl uporablja določene posebne simbole in navodila ki so potrebni, da sta dve datoteki enaki. Pove vam navodila, kako spremeniti prvo datoteko, da bo ustrezala drugi datoteki.



Osnovna sintaksa ukaza diff

Osnovna sintaksa zadiff>ukaz je naslednji:

diff [OPTION]... FILE1 FILE2>

Tukaj, ` FILE1`> in ` FILE2`> sta dve datoteki, ki ju želite primerjati.

` OPTION`> vam omogoča, da prilagodite vedenje ` diff`> ukaz.



Možnosti, ki so na voljo v ukazu diff

Možnost

string.valueof

Opis

-c>oz--context>

Izhodne razlike v kontekstualnem načinu

-u>oz--unified>

Izhodne razlike v enotnem načinu (bolj jedrnato)

-i>oz--ignore-case>

Izvedite primerjavo, ki ne razlikuje med velikimi in malimi črkami

–ignore-all-space

Pri primerjavi vrstic ignorirajte presledke

– na kratko

Izdaj samo, ali se datoteke razlikujejo, brez podrobnosti

– rekurzivno

Rekurzivno primerjajte imenike

-y>oz--side-by-side>

Prikažite izhod v formatu drug ob drugem

Praktična izvedba Kako primerjati datoteke vrstico za vrstico v Linuxu? :

Primerjava dveh datotek

Primerjajte datoteke vrstico za vrstico v Linuxu.

java string indexof

Recimo, da imamo dve datoteki z imeni a.txt in b.txt ki vsebuje 5 indijskih držav.

cat a.txt cat b.txt>
prikaz vsebine datotek z ukazom cat

prikazovanje vsebine datotek z ukazom cat

Zdaj z uporabo ukaza diff brez kakršne koli možnosti dobimo naslednji rezultat:

diff a.txt b.txt>
primerjanje datoteke vrstico za vrstico v linuxu

primerjanje datoteke vrstico za vrstico v linuxu

Oglejmo si, kaj ta izhod pomeni. Prva vrstica v razl izhod bo vseboval:

  • Številke vrstic, ki ustrezajo prvi datoteki,
  • Poseben simbol in
  • Številke vrstic, ki ustrezajo drugi datoteki.

Kot v našem primeru, 0a1 kar pomeni po vrstice 0 (na samem začetku datoteke), ki jih morate dodati Tamil Nadu da se ujema z drugo številko vrstice datoteke 1. Nato nam pove, katere so te vrstice v vsaki datoteki, pred katero je simbol:

  • Vrstice, pred katerimi je a < so vrstice iz prve datoteke.
  • Vrstice pred > so vrstice iz druge datoteke.
  • Naslednja vrstica vsebuje 2,3c3 kar pomeni, da je treba vrstico 2 v vrstico 3 v prvi datoteki spremeniti tako, da se ujema z vrstico številka 3 v drugi datoteki. Nato nam pove te vrstice z zgornjimi simboli.
  • Tri pomišljaje (—) samo ločite vrstici datoteke 1 in datoteke 2.

Kot povzetek, da bosta obe datoteki enaki, najprej dodajte Tamil Nadu v prvi datoteki na samem začetku, da se ujema s 1. vrstico druge datoteke, po tem spremenite 2. in 3. vrstico prve datoteke, tj. Utar Pradeš in Kolkata z vrstico 3 druge datoteke, tj. Andhra Pradesh . Po tem spremenite vrstico 5 prve datoteke, tj. Jammu in Kašmir z vrstico 5 druge datoteke, tj. Utar Pradeš .

Brisanje vrstice v datotekah z ukazom diff

Razmislite o scenariju, kjerdiff>označuje potrebo po brisanju vrstice. Glede na dve datoteki,a.txt>inb.txt>:

python shrani json v datoteko
prikazovanje vsebine datotek z ukazom cat

prikazovanje vsebine datotek z ukazom cat

diff a.txt b.txt>
Brisanje vrstice v datoteki

Brisanje vrstice v datoteki

Tukaj nad izhodom 3d2 pomeni brisanje 3. vrstice prve datoteke, tj. Telangana tako da obe datoteki sinhroniziraj v vrstici 2.

Ogled razlik v kontekstualnem načinu

Če si želite ogledati razlike v kontekstualnem načinu, uporabite -c možnost. Poskusimo to razumeti na primeru, imamo dve datoteki datoteka1.txt in datoteka2.txt :

prikazovanje vsebine datotek z ukazom cat

prikazovanje vsebine datotek z ukazom cat

diff -c file1.txt file2.txt>
Ogled razlike v kontekstualnem načinu

Ogled razlike v kontekstualnem načinu

V zgornjem rezultatu:

  • Prva datoteka je označena z ` ***`> , druga datoteka pa je označena z ` ---`> .
  • Vrstica z ` ***************`> služi kot ločilo.
  • Prvi dve vrstici zagotavljata informacije o datoteki 1 in datoteki 2, prikazujeta ime datoteke, datum spremembe in čas spremembe.
  • Za tem tri zvezdice ` ***`> sledi obseg vrstic iz prve datoteke (vrstice od 1 do 4). Štiri zvezdice` ****`> pridi naslednji. Vsebina prve datoteke se nato prikaže s posebnimi indikatorji:
    • Če je vrstica nespremenjena, je pred njo dva presledka.
    • Če je treba vrstico spremeniti, se pred njo doda simbol in presledek. Simboli označujejo:
      • `+`> : vrstica v drugi datoteki, ki se doda prvi datoteki za enake rezultate.
      • `-`> : Vrstica v prvi datoteki, ki jo je treba izbrisati za enake rezultate.
  • Tri pomišljaje ` ---`> sledi obseg vrstic iz druge datoteke (vrstice od 1 do 4), ločene z vejico. Štiri pomišljaje ` ----`> sledi in prikaže se vsebina druge datoteke.

Ogled razlik v poenotenem načinu

Če si želite ogledati razlike v enotnem načinu, uporabite -in možnost. Podoben je kontekstualnemu načinu, vendar je ne prikaže nobenih odvečnih informacij ali prikazuje informacije v jedrnati obliki.

prikazovanje vsebine datotek z ukazom cat

prikazovanje vsebine datotek z ukazom cat

diff -u file1.txt file2.txt>
Razlika v pogledu v poenotenem načinu

Razlika v pogledu v poenotenem načinu

V zgornjem rezultatu:

  • Prva datoteka je označena z ` ---`> , druga datoteka pa je označena z ` +++`> .
  • Prvi dve vrstici vsebujeta informacije o datoteki 1 in datoteki 2, vključno z datumom in časom spremembe.
  • Po tem, ` @@ -1> `,`> 4 +1`> ,`> 4 @@`> označuje obseg vrstic za obe datoteki. V tem primeru predstavlja vrstice od 1 do 4 v obeh datotekah.
  • Naslednje vrstice predstavljajo vsebino datotek s posebnimi indikatorji:
    • Nespremenjene vrstice so prikazane brez predpone.
    • Vrstice v prvi datoteki, ki jo želite izbrisati, imajo predpono z->.
    • Vrstice v drugi datoteki, ki jo želite dodati, imajo predpono z+>.

V tem primeru izhod kaže, da je treba črti, ki vsebujeta mv in comm, izbrisati iz prve datoteke, če želite, da sta obe datoteki enaki (file1.txt>), in mu je treba dodati vrstici, ki vsebujeta diff in comm.

Primerjava med datotekami brez upoštevanja velikih in malih črk

Privzeto je ` diff`> je občutljiv na velike in male črke. Za izvedbo primerjave, ki ne razlikuje med velikimi in malimi črkami, uporabite ` -i`> možnost:

prikazovanje vsebine datotek z ukazom cat

prikazovanje vsebine datotek z ukazom cat

Thediff>ukaz se nato uporabi za primerjavo teh datotek z-i>možnost, zaradi katere primerjava ne razlikuje med velikimi in malimi črkami.

diff -i file1.txt file2.txt>
primerjava brez upoštevanja velikih in malih črk

primerjava brez upoštevanja velikih in malih črk

  • 2d1>: To označuje spremembo v 2. vrstici prve datoteke (file1.txt>). Thed>pomeni brisanje in piše, da izbrišete 2. vrstico iz prve datoteke.
    • >: Ta vrstica označuje vsebino vrstice, ki jo želite izbrisati. V tem primeru je to mv.
  • 3a3>: To označuje dodatek v vrstici 3 prve datoteke (file1.txt>). Thea>pomeni dodajanje in pravi, da dodate vrstico na položaj 3.
    • >razl>: Ta vrstica predstavlja vsebino, ki jo je treba dodati. V tem primeru gre za razl.

Če povzamemo, izhod nam pove, da moramo, če želimo, da sta obe datoteki enaki (brez upoštevanja velikih in malih črk), iz prve datoteke izbrisati vrstico, ki vsebuje mv (file1.txt>) in dodajte vrstico diff na isti položaj. Thediff>ukaz, z-i>omogoča primerjavo, ki ne razlikuje med velikimi in malimi črkami, zaradi česar med analizo obravnava mv in MV kot enaka.

Prikazovanjediff>Različica

Če želite preveriti različico ` diff`> nameščen v vašem sistemu, uporabite ` --version`> možnost:

diff --version>
Prikaz različice ukaza diff

Prikaz različice ukaza diff

spletni gonilnik

Ta ukaz ponuja informacije o različici, licenciranju in avtorjih datoteke ` diff`> uporabnost.

Pogosto zastavljena vprašanja o ukazu diff – pogosta vprašanja

Kako naj uporabimdiff>ukaz za primerjavo dveh datotek vrstico za vrstico v Linuxu?

Za primerjavo dveh datotek vrstico za vrstico z uporabodiff>preprosto uporabite naslednjo sintakso:

diff file1.txt file2.txt>

Ta ukaz bo prikazal razlike med obema datotekama in poudaril dodatke, izbrise in spremembe.

Ali lahko med primerjavo datotek z datoteko prezrem razlike v presledkihdiff>ukaz?

Da,diff>ukaz zagotavlja-w>oz--ignore-all-space>možnost ignoriranja razlik v presledkih. Na primer:

diff -w file1.txt file2.txt>

To je še posebej uporabno pri primerjavi kodnih datotek, kjer spremembe v zamiku ali razmiku niso pomembne.

Kako lahko ustvarim datoteko popravka z uporabodiff>ukaz?

Če želite ustvariti datoteko popravka, ki predstavlja razlike med dvema datotekama, uporabite-u>in preusmeri izhod v datoteko:

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

Ustvarjeno datoteko popravka lahko uporabite pozneje za sinhronizacijo druge datoteke s spremembami.

V čem je enotna oblikadiff>izhod in v čem se razlikuje od oblike konteksta?

Enotna oblika (` -u`> možnost) v ` diff`> izpis zagotavlja bolj jedrnato in berljivo predstavitev razlik v primerjavi s kontekstnim formatom (` -c`> možnost). Spremembe prikaže v bolj kompaktni obliki, kar olajša razumevanje sprememb med datotekami.

Kako rekurzivno primerjam dva imenika v Linuxu z uporabodiff>ukaz?

Če želite rekurzivno primerjati dva imenika in njuno vsebino, uporabite ` -r`> ali ` --recursive`> možnost zdiff>ukaz:

diff -r directory1/ directory2/>

Ta ukaz primerja vse datoteke v navedenih imenikih in nudi podrobne informacije o razlikah.

Zaključek

V svetu Linuxa je primerjava datotek pogosta naloga sistemskih skrbnikov in razvijalcev. ` diff> ukaz je priročno orodje, ki pomaga pri tem procesu. Ta članek raziskuje, kako uporabljati ` diff`> za primerjavo datotek vrstico za vrstico v Linuxu. Zajema osnovno sintakso, pomembne možnosti, kot sta kontekstni način in poenoten način, ter praktične aplikacije, kot je ustvarjanje datotek popravkov in rekurzivna primerjava imenikov. Ne glede na to, ali odpravljate napake v kodi ali zagotavljate celovitost datoteke, razumevanje in obvladovanje ` diff`> ukaz je bistven za učinkovito upravljanje datotek v Linuxu.