Cum de a compara două fișiere text folosind Linux

Acest ghid vă va arăta cum să utilizați Linux pentru a compara două fișiere și a le difuza pe ecran sau într-un fișier.

Nu este nevoie să instalați niciun software special pentru a compara fișierele utilizând Linux, dar trebuie să știți cum să deschideți o fereastră terminală .

După cum arată ghidul conectat, există multe modalități de a deschide o fereastră de terminal folosind Linux. Cel mai simplu este să apăsați simultan tastele CTRL, ALT și T.

Crearea fișierelor de comparat

Pentru a urmări împreună cu acest ghid creați un fișier numit "file1" și introduceți următorul text:

10 sticle verzi pe un perete

10 sticle verzi pe un perete

Dacă o sticlă verde ar trebui să cadă accidental

Pe perete ar fi 9 sticle verzi

Puteți crea un fișier urmând aceste instrucțiuni:

  1. Deschideți fișierul introducând următoarea comandă: fișierul nano1
  2. Introduceți textul în editorul nano
  3. Apăsați CTRL și O pentru a salva fișierul
  4. Apăsați CTRL și X pentru a ieși din fișier

Acum, creați un alt fișier numit "file2" și introduceți următorul text:

10 sticle verzi pe un perete

Dacă o sticlă verde ar trebui să cadă accidental

Pe perete vor sta 9 sticle verzi

Puteți crea un fișier urmând aceste instrucțiuni:

  1. Deschideți fișierul tastând următoarea comandă: fișierul nano2
  2. Introduceți textul în editorul nano
  3. Apăsați CTRL și O pentru a salva fișierul
  4. Apăsați CTRL și X pentru a ieși din fișier

Cum se compară două fișiere utilizând Linux

Comanda utilizată în Linux pentru a arăta diferențele dintre două fișiere se numește comanda diff.

Cea mai simplă formă a comenzii diff este următoarea:

diff file1 file2

În cazul în care fișierele sunt aceleași, atunci nu va fi nici o ieșire atunci când utilizați această comandă, cu toate acestea, deoarece există diferențe veți vedea de ieșire similare cu următoarele:

2,4c2,3

<10 sticle verzi așezate pe perete

- Pe perete ar fi 9 sticle verzi

...

> Dacă 1 sticlă verde ar trebui să cadă accidental

> Pe perete ar fi 9 sticle verzi

Inițial, producția poate părea confuză, dar odată ce ați înțeles terminologia, este destul de logică.

Utilizând propriile ochi, puteți vedea că diferențele dintre cele două fișiere sunt după cum urmează:

Ieșirea din comanda diff arată că între liniile 2 și 4 ale primului fișier și liniile 2 și 3 ale celui de-al doilea fișier există diferențe.

Se afișează apoi liniile de la 2 la 4 din primul fișier, urmate de cele două linii diferite din al doilea fișier.

Cum să arătați doar dacă fișierele sunt diferite

Dacă doriți doar să știți dacă fișierele sunt diferite și nu sunteți interesat de ce linii sunt diferite, puteți rula următoarea comandă:

diff -q file1 file2

Dacă fișierele sunt diferite, vor fi afișate următoarele:

Fișierele1 și file2 diferă

Dacă fișierele sunt aceleași, atunci nu este afișat nimic.

Cum se afișează un mesaj dacă fișierele sunt identice

Când executați o comandă pe care doriți să o știți că a funcționat corect, doriți să fie afișat un mesaj atunci când executați comanda diff, indiferent dacă fișierele sunt aceleași sau diferite

Pentru a atinge această cerință utilizând comanda diff, puteți utiliza următoarea comandă :.

diff -s file1 file2

Acum, dacă fișierele sunt aceleași, veți primi următorul mesaj:

Fișierele 1 și 2 sunt identice

Cum de a crea diferențele între ele

Dacă există o mulțime de diferențe, atunci poate deveni foarte rapid confuză cu privire la diferențele care sunt de fapt între cele două fișiere.

Puteți modifica ieșirea comenzii diff astfel încât rezultatele să fie afișate una lângă alta. Pentru aceasta, rulați următoarea comandă:

diff -y fișier1 fișier2

Ieșirea pentru fișier utilizează | simbol pentru a afișa o diferență între cele două linii, un pentru a afișa o linie care a fost adăugată.

Interesant dacă rulați comanda utilizând fișierele demonstrative, atunci toate liniile vor fi afișate ca diferite, cu excepția ultimului rând din fișierul 2 care va fi afișat ca fiind șters.

Restricționarea lățimilor coloanei

Atunci când se compară două fișiere unul lângă celălalt, poate fi dificil de citit dacă fișierele au o mulțime de coloane de text.

Pentru a restricționa un număr de coloane, utilizați următoarea comandă:

diff - width = 5 fișier2

Cum să ignorați diferențele de caz atunci când comparați fișierele

Dacă doriți să comparați două fișiere, dar nu vă interesează dacă cazul literelor este același între cele două fișiere, puteți utiliza următoarea comandă:

diff -i fișier1 fișier2

Cum să ignorați spațiul alb care se află în capătul unei linii

Dacă când comparați fișierele observați o mulțime de diferențe și diferențele sunt cauzate de spațiul alb la sfârșitul liniilor, puteți să omiteți ca acestea să apară ca modificări executând următoarea comandă:

diff -Z file1 file2

Cum să ignorați toate diferențele de spațiu alb între două fișiere

Dacă sunteți interesat doar de textul dintr-un fișier și nu vă pasă dacă există mai multe spații într-unul decât celălalt puteți utiliza următoarea comandă:

diff -w file1 file2

Cum să ignorați linii goale atunci când comparați două fișiere

Dacă nu vă pasă faptul că un singur fișier poate avea linii în plus, atunci puteți compara fișierele utilizând următoarea comandă:

diff -B file1 file2

rezumat

Puteți găsi mai multe informații prin citirea manualului pentru comanda diff.

dif

Comanda diff poate fi folosită în cea mai simplă formă pentru a vă arăta diferențele între două fișiere, dar puteți să o utilizați și pentru a crea un fișier diff ca parte a unei strategii de patch-uri, așa cum se arată în acest ghid al comenzii patch Linux .

O altă comandă pe care o puteți utiliza pentru a compara fișierele este comanda cmp așa cum se arată în acest ghid . Acest lucru compară octetul fișierelor cu byte.