Linux sdiff komandu piemēri Linux iesācējiem


Vienā no mūsu agrākajiem rakstiem mēs esam izskaidrojuši apmēram 9 labākos failu salīdzināšanas un atšķirības (Diff) rīkus Linux sistēmām. Mēs uzskaitījām komandrindas un GUI rīku sajaukumu, lai salīdzinātu un atrastu atšķirības starp failiem, katram no kuriem ir dažas ievērojamas funkcijas. Vēl vienu noderīgu diff lietderību Linux sauc par sdiff.

sdiff ir vienkārša komandrindas lietderība, lai parādītu atšķirības starp diviem failiem un apvienotos interaktīvi. To ir viegli lietot, un tam ir vienkāršas lietošanas iespējas, kā paskaidrots turpmāk.

Sdiff izmantošanas sintakse ir šāda.

$ sdiff option... file1 file2

Parādiet atšķirību starp diviem failiem Linux

1. Vieglākais veids, kā palaist sdiff, ir norādīt divus failu nosaukumus, kurus mēģināt salīdzināt. Tas parādīs apvienoto atšķirību blakus, kā parādīts nākamajā ekrānuzņēmumā.

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

Apstrādājiet visus failus kā teksta failus

2. Lai visus failus uzskatītu par tekstu un salīdzinātu tos pa rindām neatkarīgi no tā, vai tie ir teksta faili, izmantojiet karodziņu -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	      <

Ignorējiet cilnes un atstarpi

3. Ja jums ir faili ar pārāk lielu atstarpi, varat pateikt sdiff ignorēt visu atstarpi, salīdzinot, izmantojot slēdzi -W .

$ sdiff -W du.txt cal.txt

4. Varat arī pateikt sdiff, lai ignorētu jebkuru atstarpi līnijas beigās, izmantojot opciju -z .

$ sdiff -z du.txt cal.txt

5. Turklāt jūs varat uzdot sdiff ignorēt izmaiņas cilnes paplašināšanas dēļ ar karodziņu -E .

$ sdiff -E du.txt cal.txt

Ignorējiet gadījumu, salīdzinot atšķirību

6. Lai ignorētu reģistru (kur sdiff lielos un mazos burtus uzskata par vienādiem), izmantojiet opciju -i , kā parādīts.

$ sdiff -i du.txt cal.txt

Ignorējiet tukšās līnijas, salīdzinot atšķirības

7. Opcija -B palīdz ignorēt tukšo rindiņu failos.

$ sdiff -B du.txt cal.txt

Definējiet izvades kolonnu skaitu

8. sdiff ļauj iestatīt drukājamo kolonnu skaitu (noklusējums ir 130), izmantojot slēdzi -w šādi.

$ sdiff -w 150 du.txt cal.txt

Izvērsiet cilnes līdz Spaces

9. Lai izvērstu cilnes izvades atstarpēs, izmantojiet opciju -t .

$ sdiff -t du.txt cal.txt

Palaist sdiff interaktīvi

10. Karodziņš -o ļauj tam darboties interaktīvāk un nosūtīt izvadi uz failu. Šajā komandā izvade tiks nosūtīta uz failu sdiff.txt, pēc % zīmes redzēšanas nospiediet taustiņu Enter, lai iegūtu interaktīvo izvēlni.

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

Ņemiet vērā, ka šajā scenārijā daži redaktori, piemēram, ed, ir jāinstalē sistēmā.

Lai salīdzinātu failus, izsauciet citu programmu

11. Slēdzis --diff-program ļauj izsaukt citu komandrindas rīku, nevis pašu sdiff, lai salīdzinātu failus, piemēram, varat izsaukt diff programmu, kā parādīts attēlā.

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

Lai iegūtu vairāk informācijas, apmeklējiet sdiff man lapu.

$ man sdiff

Šajā rakstā mēs apskatījām sdiff komandrindas rīku piemērus iesācējiem. Ja jums ir kādi jautājumi, izmantojiet zemāk esošo komentāru veidlapu, lai sazinātos ar mums.