Mga Ehemplo sa Linux sdiff Command alang sa Linux Newbies


Sa usa sa among naunang artikulo, gipasabut namo ang mahitungod sa 9 nga labing maayo nga pagtandi sa file ug kalainan (Diff) nga mga himan alang sa mga sistema sa Linux. Gilista namo ang usa ka sinagol nga command-line ug GUI nga mga himan alang sa pagtandi ug pagpangita sa mga kalainan tali sa mga file, ang matag usa adunay pipila ka talagsaon nga mga bahin. Ang laing mapuslanon nga diff utility alang sa Linux gitawag nga sdiff.

Ang sdiff usa ka yano nga command line utility alang sa pagpakita sa mga kalainan tali sa duha ka mga file ug paghiusa nga interactive. Sayon kini gamiton ug adunay mga kapilian nga yano nga paggamit sama sa gipatin-aw sa ubos.

Ang syntax sa paggamit sa sdiff mao ang mosunod.

$ sdiff option... file1 file2

Ipakita ang Kalainan Tali sa Duha ka mga File sa Linux

1. Ang pinakasayon nga paagi sa pagpadagan sa sdiff mao ang paghatag sa duha ka filename nga imong gisulayan itandi. Kini magpakita sa merged difference side-by-side sama sa gipakita sa mosunod nga screenshot.

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

Tagda ang tanang Files isip Text Files

2. Aron itratar ang tanang file isip text ug itandi kini sa linya-by-line, text file man o dili, gamita ang -a flag.

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

Ibaliwala ang mga Tab ug White Space

3. Kung naa kay mga file nga daghan kaayog whitespace, pwede nimo sultihan si sdiff nga ibaliwala ang tanang white space samtang ikumpara gamit ang -W switch.

$ sdiff -W du.txt cal.txt

4. Mahimo usab nimo sultihan si sdiff nga ibaliwala ang bisan unsang puti nga espasyo sa katapusan sa linya gamit ang opsyon nga -z.

$ sdiff -z du.txt cal.txt

5. Dugang pa, mahimo nimong tudloan ang sdiff nga ibaliwala ang mga pagbag-o tungod sa pagpalapad sa tab gamit ang bandila nga -E.

$ sdiff -E du.txt cal.txt

Ibaliwala ang Kaso Samtang Pagtandi sa Kalainan

6. Aron ibaliwala ang case (diin ang sdiff nagtratar sa upper-ug lower-case nga pareho), gamita ang -i option sama sa gipakita.

$ sdiff -i du.txt cal.txt

Ibaliwala ang mga Blangko nga Linya Samtang Pagtandi sa Kalainan

7. Ang -B nga opsyon makatabang sa pagbaliwala sa blangko nga linya sa mga file.

$ sdiff -B du.txt cal.txt

Tinoa ang Gidaghanon sa mga Kolum sa Output

8. sdiff nagtugot kanimo sa pagtakda sa gidaghanon sa mga kolum nga i-imprinta (default mao ang 130), pinaagi sa paggamit sa -w switch sama sa mosunod.

$ sdiff -w 150 du.txt cal.txt

Pagpalapad sa mga Tab ngadto sa mga Space

9. Sa pagpalapad sa mga tab ngadto sa mga espasyo sa output, gamita ang -t nga opsyon.

$ sdiff -t du.txt cal.txt

Pagdalagan sdiff Interactively

10. Ang -o nga bandila makapahimo niini sa pagdagan nga mas interactive ug ipadala ang output ngadto sa usa ka file. Niini nga sugo, ang output ipadala ngadto sa sdiff.txt file, pindota ang Enter human makita ang % sign, aron makuha ang interactive nga menu.

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

Timan-i nga kinahanglan nimo nga adunay pipila ka mga editor sama sa ed nga na-install sa imong sistema sa dili pa kini gamiton, sa kini nga senaryo.

Pagtawag ug Lain nga Programa Aron Pagtandi sa mga File

11. Ang --diff-program switch nagtugot kanimo sa pagtawag sa laing command-line tool, gawas sa sdiff mismo aron itandi ang mga file, pananglitan, mahimo nimong tawagan ang diff program sama sa gipakita.

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

Para sa dugang nga impormasyon, konsultaha ang sdiff man page.

$ man sdiff

Niini nga artikulo, among gitan-aw ang sdiff command-line tool nga mga pananglitan alang sa mga nagsugod. Kung naa kay pangutana, gamita ang comment form sa ubos para maabot mi.