Linux sdiff -komennon esimerkit Linux-aloittelijoille


Yhdessä aikaisemmassa artikkelissamme olemme selittäneet noin 9 parasta tiedostojen vertailu- ja ero (Diff) -työkalua Linux-järjestelmille. Luettelimme komentorivi- ja GUI-työkalujen yhdistelmän tiedostojen välisten erojen vertailemiseksi ja löytämiseksi, joista jokaisella on tiettyjä merkittäviä ominaisuuksia. Toinen hyödyllinen Linux-diff-apuohjelma on nimeltään sdiff.

sdiff on yksinkertainen komentorivi-apuohjelma, joka näyttää kahden tiedoston väliset erot ja sulautuvat vuorovaikutteisesti. Sitä on helppo käyttää ja siinä on suoraviivainen käyttövaihtoehto, kuten alla selitetään.

Sdiffin käyttö syntaksissa on seuraava.

$ sdiff option... file1 file2

Näytä ero kahden tiedoston välillä Linuxissa

1. Helpoin tapa suorittaa sdiff on antaa kaksi tiedostonimeä, joita yrität verrata. Se näyttää yhdistetyn erotuksen vierekkäin seuraavan kuvakaappauksen mukaisesti.

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

Käsittele kaikkia tiedostoja tekstitiedostoina

2. Jos haluat käsitellä kaikkia tiedostoja tekstinä ja verrata niitä rivi riviltä riippumatta siitä, ovatko ne tekstitiedostoja, käytä -a -merkkiä.

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

Ohita välilehdet ja välilyönti

3. Jos sinulla on tiedostoja, joissa on liikaa tyhjää tilaa, voit kertoa sdiffille, että se jättää välilyönnin välilyönnin verrattaessa -W -kytkimellä.

$ sdiff -W du.txt cal.txt

4. Voit myös kertoa sdiffille, että se jättää väliin kaikki tyhjät tilat rivin lopussa käyttämällä -z -vaihtoehtoa.

$ sdiff -z du.txt cal.txt

5. Lisäksi voit antaa sdiffin ohittaa välilehden laajennuksesta johtuvat muutokset -E -lipulla.

$ sdiff -E du.txt cal.txt

Ohita tapaus verrattaessa eroa

6. Ohita kirjaimet (joissa sdiff käsittelee isoja ja pieniä kirjaimia samoina) käyttämällä -i -vaihtoehtoa kuvan mukaisesti.

$ sdiff -i du.txt cal.txt

Ohita tyhjät viivat verrattaessa eroa

7. -B -vaihtoehto auttaa ohittamaan tiedostojen tyhjän rivin.

$ sdiff -B du.txt cal.txt

Määritä tuotettavien sarakkeiden määrä

8. sdiff antaa sinun asettaa tulostettavien sarakkeiden määrän (oletus on 130) käyttämällä -w -kytkintä seuraavasti.

$ sdiff -w 150 du.txt cal.txt

Laajenna välilehdet kohtaan Spaces

9. Laajenna välilehdet välilyönteihin käyttämällä -t -vaihtoehtoa.

$ sdiff -t du.txt cal.txt

Suorita sdiff vuorovaikutteisesti

10. -o -lipun avulla se voi toimia interaktiivisemmin ja lähettää lähdön tiedostoon. Tässä komennossa lähtö lähetetään sdiff.txt-tiedostoon, paina Enter-näppäintä nähtyäsi % -merkin, saadaksesi interaktiivisen valikon.

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

Huomaa, että joissakin muokkausohjelmissa, kuten ed, on asennettava järjestelmään ennen niiden käyttöä tässä skenaariossa.

Kutsu toinen ohjelma tiedostojen vertaamiseksi

11. --diff-program -kytkimellä voit soittaa toiselle komentorivityökalulle paitsi sdiff itse tiedostojen vertailemiseksi. Voit esimerkiksi soittaa diff-ohjelmaan kuvan mukaisesti.

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

Lisätietoja on sdiff-man-sivulla.

$ man sdiff

Tässä artikkelissa tarkastelimme sdiff-komentorivityökalun esimerkkejä aloittelijoille. Jos sinulla on kysyttävää, käytä alla olevaa kommenttilomaketta päästäksesi meihin.