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, je diff> ukaz. V tem članku bomo raziskali, kako uporabljati diff> ukaz za primerjavo datotek vrstico za vrstico v Linuxu.
Kazalo
- Osnovna sintaksa ukaza diff
- Možnosti, ki so na voljo v ukazu diff
- Praktična izvedba Kako primerjati datoteke vrstico za vrstico v Linuxu? :
- Primerjava dveh datotek
- Brisanje vrstice v datotekah z ukazom diff
- Ogled razlik v kontekstualnem načinu
- Ogled razlik v poenotenem načinu
- Primerjava med datotekami brez upoštevanja velikih in malih črk
- Prikaz različice diff
Razumevanje ukaza diff
diff pomeni Razlika .The diff> 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 za diff> 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 | Opis |
|---|---|
| | Izhodne razlike v kontekstualnem načinu |
| | Izhodne razlike v enotnem načinu (bolj jedrnato) |
| | 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 |
| | 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.
Recimo, da imamo dve datoteki z imeni a.txt in b.txt ki vsebuje 5 indijskih držav.
cat a.txt cat b.txt
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
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, kjer diff> označuje potrebo po brisanju vrstice. Glede na dve datoteki, a.txt> in b.txt> :
prikazovanje vsebine datotek z ukazom cat
diff a.txt b.txt
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
diff -c file1.txt file2.txt
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
diff -u file1.txt file2.txt
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
The diff> 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
-
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. The diff> ukaz, z -i> omogoča primerjavo, ki ne razlikuje med velikimi in malimi črkami, zaradi česar med analizo obravnava mv in MV kot enaka.
Prikazovanje diff> 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
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 uporabim diff> ukaz za primerjavo dveh datotek vrstico za vrstico v Linuxu?
Za primerjavo dveh datotek vrstico za vrstico z uporabo
diff>preprosto uporabite naslednjo sintakso:diff file1.txt file2.txtTa ukaz bo prikazal razlike med obema datotekama in poudaril dodatke, izbrise in spremembe.
Ali lahko med primerjavo datotek z datoteko prezrem razlike v presledkih diff> ukaz?
Da,
diff>ukaz zagotavlja-w>oz--ignore-all-space>možnost ignoriranja razlik v presledkih. Na primer:diff -w file1.txt file2.txtTo je še posebej uporabno pri primerjavi kodnih datotek, kjer spremembe v zamiku ali razmiku niso pomembne.
Kako lahko ustvarim datoteko popravka z uporabo diff> 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.patchUstvarjeno datoteko popravka lahko uporabite pozneje za sinhronizacijo druge datoteke s spremembami.
V čem je enotna oblika diff> 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 uporabo diff> 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.