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