Linux sdiff Kommandoeksempler til Linux-nybegyndere


I en af vores tidligere artikel har vi forklaret omkring 9 bedste fil sammenligning og forskel (Diff) værktøjer til Linux-systemer. Vi listede en blanding af kommandolinje- og GUI-værktøjer til sammenligning og finde forskelle mellem filer, hver med visse bemærkelsesværdige funktioner. Et andet nyttigt diff-hjælpeprogram til Linux kaldes sdiff.

sdiff er et simpelt kommandolinjeprogram til at vise forskellene mellem to filer og flette interaktivt. Det er let at bruge og leveres med enkle anvendelsesmuligheder som forklaret nedenfor.

Syntaksen for brug af sdiff er som følger.

$ sdiff option... file1 file2

Vis forskellen mellem to filer i Linux

1. Den nemmeste måde at køre sdiff på er at angive de to filnavne, du prøver at sammenligne. Det viser den flettede forskel side om side som vist i det følgende skærmbillede.

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

Behandl alle filer som tekstfiler

2. Brug flag -a for at behandle alle filer som tekst og sammenligne dem linje for linje, uanset om det er tekstfiler eller ej.

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

3. Hvis du har filer med for meget mellemrum, kan du bede sdiff om at ignorere al hvid plads, mens du sammenligner ved hjælp af -W -kontakten.

$ sdiff -W du.txt cal.txt

4. Du kan også bede sdiff om at ignorere ethvert hvidt mellemrum ved linjeslut ved hjælp af indstillingen -z .

$ sdiff -z du.txt cal.txt

5. Derudover kan du bede sdiff om at ignorere ændringer på grund af faneudvidelse med -E -flagget.

$ sdiff -E du.txt cal.txt

Ignorer sag, mens man sammenligner forskellen

6. For at ignorere store og små bogstaver (hvor sdiff behandler store og små bogstaver som de samme), skal du bruge indstillingen -i som vist.

$ sdiff -i du.txt cal.txt

Ignorer tomme linjer, mens du sammenligner forskellen

7. Indstillingen -B hjælper med at ignorere tom linje i filer.

$ sdiff -B du.txt cal.txt

Definer antal kolonner, der skal outputes

8. sdiff giver dig mulighed for at indstille antallet af kolonner, der skal udskrives (standard er 130) ved hjælp af -w -kontakten som følger.

$ sdiff -w 150 du.txt cal.txt

Udvid faner til mellemrum

9. For at udvide faner til mellemrum i output skal du bruge indstillingen -t .

$ sdiff -t du.txt cal.txt

Kør sdiff interaktivt

10. Flagget -o gør det muligt at køre mere interaktivt og sende output til en fil. I denne kommando sendes output til sdiff.txt-filen, tryk på Enter efter at have set % -tegnet for at få den interaktive 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.
%

Bemærk, at du skal have nogle af redaktørerne, f.eks. Ed, installeret på dit system, før du bruger dem, i dette scenarie.

Påkald et andet program til at sammenligne filer

11. Omskifteren --diff-program giver dig mulighed for at ringe til et andet kommandolinjeværktøj, bortset fra sdiff selv for at sammenligne filer, for eksempel kan du kalde diff-programmet som vist.

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

For mere information, se sdiff-mandsiden.

$ man sdiff

I denne artikel kiggede vi på eksempler på sdiff kommandolinjeværktøj til begyndere. Hvis du har spørgsmål, skal du bruge kommentarformularen nedenfor for at nå os.