„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.