Wyszukiwanie w witrynie

Przykłady poleceń Linux sdiff dla początkujących użytkowników Linuksa


W jednym z naszych wcześniejszych artykułów wyjaśniliśmy 9 najlepszych narzędzi do porównywania i różnicowania plików dla systemów Linux. Wymieniliśmy mieszankę narzędzi wiersza poleceń i GUI do porównywania i znajdowania różnic między plikami, każdy z pewnymi niezwykłymi funkcjami. Inne przydatne narzędzie różnicujące dla Linuksa nazywa się sdiff.

Przeczytaj także: Jak znaleźć różnicę między dwoma katalogami za pomocą narzędzi porównywania i łączenia

sdiff to proste narzędzie wiersza poleceń służące do pokazywania różnic między dwoma plikami i interaktywnego łączenia. Jest łatwy w użyciu i oferuje proste opcje użytkowania, które wyjaśniono poniżej.

Składnia użycia sdiff jest następująca.

sdiff option... file1 file2

Pokaż różnicę między dwoma plikami w systemie Linux

1. Najłatwiejszym sposobem uruchomienia sdiff jest podanie dwóch nazw plików, które próbujesz porównać. Połączone różnice zostaną pokazane obok siebie, jak pokazano na poniższym zrzucie ekranu.


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

Traktuj wszystkie pliki jako pliki tekstowe

2. Aby traktować wszystkie pliki jako tekst i porównywać je wiersz po wierszu, niezależnie od tego, czy są to pliki tekstowe, czy nie, użyj flagi -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	      <

Ignoruj tabulatory i białe znaki

3. Jeśli masz pliki zawierające zbyt dużo białych znaków, możesz powiedzieć sdiff, aby ignorował wszystkie białe znaki podczas porównywania za pomocą przełącznika -W.

sdiff -W du.txt cal.txt

4. Możesz także powiedzieć sdiff, aby ignorował wszelkie białe znaki na końcu linii, używając opcji -z.

sdiff -z du.txt cal.txt

5. Dodatkowo możesz poinstruować sdiff, aby ignorował zmiany spowodowane rozwinięciem tabulacji za pomocą flagi -E.

sdiff -E du.txt cal.txt

Ignoruj wielkość liter podczas porównywania różnic

6. Aby zignorować wielkość liter (gdzie sdiff traktuje wielkie i małe litery tak samo), użyj opcji -i, jak pokazano.

sdiff -i du.txt cal.txt

Ignoruj puste linie podczas porównywania różnic

7. Opcja -B pomaga ignorować puste linie w plikach.

sdiff -B du.txt cal.txt

Zdefiniuj liczbę kolumn do wydrukowania

8. sdiff pozwala ustawić liczbę drukowanych kolumn (domyślnie jest to 130) za pomocą -w przełącz w następujący sposób.

sdiff -w 150 du.txt cal.txt

Rozwiń karty do spacji

9. Aby w wynikach rozszerzyć tabulatory do spacji, użyj opcji -t.

sdiff -t du.txt cal.txt

Uruchom sdiff interaktywnie

10. Flaga -o umożliwia bardziej interaktywne działanie i wysyłanie danych wyjściowych do pliku. W przypadku tego polecenia dane wyjściowe zostaną przesłane do pliku sdiff.txt. Po zobaczeniu znaku % naciśnij Enter, aby wyświetlić interaktywne 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.
%

Pamiętaj, że w tym scenariuszu przed użyciem niektórych edytorów, takich jak ed, musisz je zainstalować.

Wywołaj inny program, aby porównać pliki

11. Przełącznik --diff-program umożliwia wywołanie innego narzędzia wiersza poleceń, innego niż sam sdiff, na przykład w celu porównania plików , możesz wywołać program diff, jak pokazano.

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

Więcej informacji można znaleźć na stronie podręcznika sdiff.

man sdiff

W tym artykule przyjrzeliśmy się przykładom narzędzi wiersza poleceń sdiff dla początkujących. Jeśli masz jakieś pytania, skorzystaj z poniższego formularza komentarza, aby się z nami skontaktować.