Linux sdiff Kommandoeksempler for Linux-nybegynnere


I en av våre tidligere artikler har vi forklart om 9 beste filsammenlignings- og forskjellsverktøy (Diff) for Linux-systemer. Vi listet opp en blanding av kommandolinje- og GUI-verktøy for å sammenligne og finne forskjeller mellom filer, hver med visse bemerkelsesverdige funksjoner. Et annet nyttig diff-verktøy for Linux heter sdiff.

Les også: Hvordan finne forskjellen mellom to kataloger ved hjelp av Diff- og Meld-verktøy

sdiff er et enkelt kommandolinjeverktøy for å vise forskjellene mellom to filer og slå sammen interaktivt. Den er enkel å bruke og kommer med enkle bruksalternativer som forklart nedenfor.

Syntaksen for å bruke sdiff er som følger.

sdiff option... file1 file2

Vis forskjellen mellom to filer i Linux

1. Den enkleste måten å kjøre sdiff på er å oppgi de to filnavnene du prøver å sammenligne. Den vil vise den sammenslåtte forskjellen side ved side som vist i følgende skjermbilde.


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

Behandle alle filer som tekstfiler

2. For å behandle alle filer som tekst og sammenligne dem linje for linje, enten de er tekstfiler eller ikke, bruk -a-flagget.

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	      <

Ignorer faner og mellomrom

3. Hvis du har filer med for mye mellomrom, kan du be sdiff om å ignorere alt mellomrom mens du sammenligner med -W-bryteren.

sdiff -W du.txt cal.txt

4. Du kan også be sdiff om å ignorere et mellomrom ved linjeenden ved å bruke -z-alternativet.

sdiff -z du.txt cal.txt

5. I tillegg kan du instruere sdiff til å ignorere endringer på grunn av faneutvidelse med -E-flagget.

sdiff -E du.txt cal.txt

Ignorer store og små bokstaver mens du sammenligner forskjell

6. For å ignorere store og små bokstaver (der sdiff behandler store og små bokstaver som det samme), bruk -i-alternativet som vist.

sdiff -i du.txt cal.txt

Ignorer tomme linjer mens du sammenligner forskjeller

7. Alternativet -B hjelper deg med å ignorere blank linje i filer.

sdiff -B du.txt cal.txt

Definer antall kolonner som skal skrives ut

8. sdiff lar deg angi antall kolonner som skal skrives ut (standard er 130), ved å bruke -w bytte som følger.

sdiff -w 150 du.txt cal.txt

Utvid Tabs til Spaces

9. For å utvide faner til mellomrom i utdata, bruk -t-alternativet.

sdiff -t du.txt cal.txt

Kjør sdiff interaktivt

10. -o-flagget gjør det mulig å kjøre mer interaktivt og sende utdata til en fil. I denne kommandoen vil utdata bli sendt til sdiff.txt-filen, trykk Enter etter å ha sett %-tegnet for å få den interaktive menyen .

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

Merk at du må ha noen av redaktørene som ed installert på systemet før du bruker dem, i dette scenariet.

Start et annet program for å sammenligne filer

11. Bryteren --diff-program lar deg kalle et annet kommandolinjeverktøy, annet enn selve sdiff for å sammenligne filer, for eksempel , kan du kalle opp diff-programmet som vist.

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

For mer informasjon, se sdiff-man-siden.

man sdiff

I denne artikkelen så vi på sdiff kommandolinjeverktøy for nybegynnere. Hvis du har spørsmål, bruk kommentarskjemaet nedenfor for å nå oss.