„Linux sdiff“ komandų pavyzdžiai „Linux“ naujokams


Viename iš mūsų ankstesnių straipsnių paaiškinome apie 9 geriausius „Linux“ sistemų failų palyginimo ir skirtumų (Diff) įrankius. Mes išvardijome komandų eilutės ir GUI įrankių derinį, skirtą palyginti ir rasti skirtumus tarp failų, kurių kiekvienas turi tam tikrų puikių savybių. Kitas naudingas „Linux“ diff įrankis vadinamas sdiff.

„sdiff“ yra paprastas komandinės eilutės įrankis, rodantis dviejų failų skirtumus ir sujungiamas interaktyviai. Tai lengva naudoti ir pateikiamos paprastos naudojimo parinktys, kaip paaiškinta toliau.

„Sdiff“ naudojimo sintaksė yra tokia.

$ sdiff option... file1 file2

Parodykite skirtumą tarp dviejų „Linux“ failų

1. Lengviausias būdas paleisti „sdiff“ yra pateikti du failų vardus, kuriuos bandote palyginti. Tai parodys sujungtą skirtumą šalia, kaip parodyta kitoje ekrano kopijoje.

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

Visus failus traktuokite kaip tekstinius failus

2. Norėdami visus failus laikyti tekstu ir palyginti juos eilutėmis, nesvarbu, ar jie yra tekstiniai failai, ar ne, naudokite vėliavą -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	      <

Nepaisykite skirtukų ir baltosios erdvės

3. Jei turite failų, kuriuose yra per daug tarpų, galite pasakyti „sdiff“, kad ignoruotų visą tarpą, lygindami naudodami jungiklį -W .

$ sdiff -W du.txt cal.txt

4. Naudodami parinktį -z taip pat galite nurodyti „sdiff“ ignoruoti bet kokią baltą vietą eilutės pabaigoje.

$ sdiff -z du.txt cal.txt

5. Be to, galite nurodyti „sdiff“ ignoruoti pakeitimus, atsirandančius dėl skirtuko išplėtimo naudojant žymę -E .

$ sdiff -E du.txt cal.txt

Nepaisykite atvejų, lygindami skirtumus

6. Norėdami nepaisyti didžiųjų ir mažųjų raidžių (kai „sdiff“ traktuoja tas pačias), naudokite parinktį -i , kaip parodyta.

$ sdiff -i du.txt cal.txt

Nepaisykite tuščių eilučių lygindami skirtumą

7. Parinktis -B padeda ignoruoti tuščią failų eilutę.

$ sdiff -B du.txt cal.txt

Apibrėžkite išvesties stulpelių skaičių

8. „sdiff“ leidžia nustatyti spausdinamų stulpelių skaičių (numatytasis nustatymas yra 130), naudodami jungiklį -w taip.

$ sdiff -w 150 du.txt cal.txt

Išskleiskite skirtukus iki tarpų

9. Norėdami išplėsti skirtukus į išvesties tarpus, naudokite parinktį -t .

$ sdiff -t du.txt cal.txt

Paleiskite „sdiff“ interaktyviai

10. Vėliava -o suteikia galimybę veikti interaktyviau ir siųsti išvestį į failą. Šioje komandoje išvestis bus nusiųsta į failą sdiff.txt, pamatę % ženklą paspauskite Enter, kad gautumėte interaktyvų meniu.

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

Atminkite, kad šiame scenarijuje turite naudoti kai kuriuos redaktorius, pvz., „Ed“, prieš juos naudojant.

Norėdami palyginti failus, iškvieskite kitą programą

11. Naudodamas jungiklį --diff-program galite iškviesti kitą komandų eilutės įrankį, išskyrus patį „sdiff“, kad palygintumėte failus. Pavyzdžiui, galite iškviesti „diff“ programą, kaip parodyta.

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

Norėdami gauti daugiau informacijos, apsilankykite sdiff žmogaus puslapyje.

$ man sdiff

Šiame straipsnyje mes apžvelgėme „sdiff“ komandinės eilutės įrankių pavyzdžius pradedantiesiems. Jei turite klausimų, naudokite žemiau esančią komentaro formą, kad susisiektumėte su mumis.