Zoeken op website

Linux sdiff-opdrachtvoorbeelden voor Linux-nieuwkomers


In een van onze eerdere artikelen hebben we de 9 beste tools voor bestandsvergelijking en verschil (Diff) voor Linux-systemen uitgelegd. We hebben een combinatie van opdrachtregel- en GUI-hulpmiddelen op een rij gezet voor het vergelijken en vinden van verschillen tussen bestanden, elk met bepaalde opmerkelijke kenmerken. Een ander handig diff-hulpprogramma voor Linux heet sdiff.

Lees ook: het verschil tussen twee mappen vinden met behulp van Diff- en Meld-tools

sdiff is een eenvoudig opdrachtregelprogramma waarmee u de verschillen tussen twee bestanden kunt weergeven en interactief kunt samenvoegen. Het is gemakkelijk te gebruiken en wordt geleverd met duidelijke gebruiksopties, zoals hieronder uitgelegd.

De syntaxis voor het gebruik van sdiff is als volgt.

sdiff option... file1 file2

Toon het verschil tussen twee bestanden in Linux

1. De eenvoudigste manier om sdiff uit te voeren is door de twee bestandsnamen op te geven die u probeert te vergelijken. Het zal het samengevoegde verschil naast elkaar tonen, zoals weergegeven in de volgende schermafbeelding.


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

Behandel alle bestanden als tekstbestanden

2. Om alle bestanden als tekst te behandelen en ze regel voor regel te vergelijken, of het nu tekstbestanden zijn of niet, gebruikt u de vlag -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	      <

Negeer tabbladen en witruimte

3. Als je bestanden hebt met te veel witruimte, kun je sdiff vertellen om alle witruimte te negeren tijdens het vergelijken met behulp van de -W-schakelaar.

sdiff -W du.txt cal.txt

4. Je kunt sdiff ook vertellen om eventuele witruimte aan het einde van de regel te negeren met behulp van de optie -z.

sdiff -z du.txt cal.txt

5. Bovendien kunt u sdiff opdracht geven om wijzigingen als gevolg van tabbladuitbreiding te negeren met de vlag -E.

sdiff -E du.txt cal.txt

Negeer hoofdletters en kleine letters terwijl u de verschillen vergelijkt

6. Om hoofdletters en kleine letters te negeren (waarbij sdiff hoofdletters en kleine letters als hetzelfde beschouwt), gebruikt u de optie -i zoals weergegeven.

sdiff -i du.txt cal.txt

Negeer lege regels bij het vergelijken van verschillen

7. De optie -B helpt bij het negeren van lege regels in bestanden.

sdiff -B du.txt cal.txt

Definieer het aantal kolommen dat moet worden uitgevoerd

8. Met sdiff kunt u het aantal kolommen instellen dat moet worden afgedrukt (standaard is 130), door de -w te gebruiken schakelt u als volgt over.

sdiff -w 150 du.txt cal.txt

Vouw tabbladen uit naar spaties

9. Om tabs uit te breiden naar spaties in de uitvoer, gebruik je de -t optie.

sdiff -t du.txt cal.txt

Voer sdiff interactief uit

10. Met de vlag -o kan het interactiever worden uitgevoerd en uitvoer naar een bestand worden verzonden. In deze opdracht wordt de uitvoer naar het bestand sdiff.txt gestuurd. Druk op Enter nadat u het %-teken ziet, om het interactieve menu te krijgen .

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

Houd er rekening mee dat u in dit scenario een aantal editors zoals ed op uw systeem moet hebben geïnstalleerd voordat u ze kunt gebruiken.

Roep een ander programma op om bestanden te vergelijken

11. Met de schakeloptie --diff-program kunt u een ander opdrachtregelprogramma dan sdiff zelf aanroepen om bijvoorbeeld bestanden te vergelijken , kunt u het diff programma oproepen zoals weergegeven.

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

Raadpleeg de sdiff-manpagina voor meer informatie.

man sdiff

In dit artikel hebben we voorbeelden van sdiff opdrachtregelprogramma's voor beginners bekeken. Als u vragen heeft, kunt u het onderstaande opmerkingenformulier gebruiken om ons te bereiken.