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

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, 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
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
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
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
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 uporabo
diff>
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.