Exemple de comandă Linux sdiff pentru începătorii Linux


Într-unul dintre articolele noastre anterioare, am explicat despre 9 cele mai bune instrumente de comparare și diferență de fișiere (Diff) pentru sistemele Linux. Am enumerat un amestec de instrumente de linie de comandă și GUI pentru compararea și găsirea diferențelor între fișiere, fiecare cu anumite caracteristici remarcabile. Un alt utilitar de diferențiere util pentru Linux se numește sdiff.

Citiți și: Cum să găsiți diferența între două directoare utilizând instrumentele Diff și Meld

sdiff este un utilitar simplu de linie de comandă pentru a afișa diferențele dintre două fișiere și a îmbina în mod interactiv. Este ușor de utilizat și vine cu opțiuni de utilizare simple, așa cum este explicat mai jos.

Sintaxa pentru utilizarea sdiff este următoarea.

sdiff option... file1 file2

Afișați diferența dintre două fișiere în Linux

1. Cel mai simplu mod de a rula sdiff este să furnizați cele două nume de fișiere pe care încercați să le comparați. Va afișa diferența îmbinată una lângă alta, așa cum se arată în următoarea captură de ecran.


cal >cal.txt
df -h >du.txt
sdiff du.txt cal.txt

Tratați toate fișierele ca fișiere text

2. Pentru a trata toate fișierele ca text și a le compara linie cu linie, indiferent dacă sunt fișiere text sau nu, utilizați indicatorul -a.

sdiff -a du.txt cal.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <

Ignorați filele și spațiul alb

3. Dacă aveți fișiere cu prea multe spații albe, puteți spune sdiff să ignore toate spațiile albe în timp ce comparați folosind comutatorul -W.

sdiff -W du.txt cal.txt

4. Puteți, de asemenea, să îi spuneți lui sdiff să ignore orice spațiu alb la sfârșitul liniei folosind opțiunea -z.

sdiff -z du.txt cal.txt

5. În plus, puteți indica sdiff să ignore modificările din cauza extinderii filei cu marcatorul -E.

sdiff -E du.txt cal.txt

Ignorați majuscule în timp ce comparați diferența

6. Pentru a ignora majuscule (unde sdiff tratează majusculele și minusculele ca la fel), utilizați opțiunea -i așa cum se arată.

sdiff -i du.txt cal.txt

Ignorați liniile goale în timp ce comparați diferența

7. Opțiunea -B ajută la ignorarea liniei goale din fișiere.

sdiff -B du.txt cal.txt

Definiți numărul de coloane de ieșit

8. sdiff vă permite să setați numărul de coloane de tipărit (implicit este 130), folosind -w comutați după cum urmează.

sdiff -w 150 du.txt cal.txt

Extinde filele la spații

9. Pentru a extinde filele la spații din ieșire, utilizați opțiunea -t.

sdiff -t du.txt cal.txt

Rulați sdiff interactiv

10. Marcatorul -o îi permite să ruleze mai interactiv și să trimită rezultate într-un fișier. În această comandă, rezultatul va fi trimis în fișierul sdiff.txt, apăsați pe Enter după ce vedeți semnul %, pentru a obține meniul interactiv .

sdiff du.txt cal.txt -o sdiff.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <
% 
ed:	Edit then use both versions, each decorated with a header.
eb:	Edit then use both versions.
el or e1:	Edit then use the left version.
er or e2:	Edit then use the right version.
e:	Discard both versions then edit a new one.
l or 1:	Use the left version.
r or 2:	Use the right version.
s:	Silently include common lines.
v:	Verbosely include common lines.
q:	Quit.
%

Rețineți că, în acest scenariu, trebuie să aveți unele dintre editoare, cum ar fi ed instalate pe sistemul dvs. înainte de a le utiliza.

Invocați un alt program pentru a compara fișierele

11. Comutatorul --diff-program vă permite să apelați un alt instrument de linie de comandă, altul decât sdiff pentru a compara fișiere, de exemplu , puteți apela programul dif așa cum se arată.

sdiff --diff-program=diff du.txt cal.txt

Pentru mai multe informații, consultați pagina de manual sdiff.

man sdiff

În acest articol, ne-am uitat la exemple de instrumente de linie de comandă sdiff pentru începători. Dacă aveți întrebări, folosiți formularul de comentarii de mai jos pentru a ne contacta.