Przed rozpoczęciem utwórz dwa pliki za pomocą dowolnego edytora tekstu (nano jest używany w tym samouczku) o tej samej zawartości:
# nanopróbka różnicowa1
Wklej wewnątrz:
LinuxHint publikuje najlepsze treści dla Ciebie
naciśnij CTRL+X i Y, aby zapisać i wyjść.
Utwórz drugi plik o nazwie diffsample2 z tą samą zawartością:
# nanopróbka różnicowa2
Uwaga: zwróć uwagę na spacje i tabulatory, pliki muszą być w 100% równe.
naciśnij CTRL+X i Y, aby zapisać i wyjść.
# diff próbka różnicowa1 próbka różnicowa2
Jak widać, nie ma wyjścia, nie trzeba robić nic, aby pliki były równe, ponieważ są już równe.
Teraz edytujmy plik diffsample2, aby wprowadzić pewne zmiany:
# nanopróbka różnicowa2Następnie zamieńmy słowo „treść” na „wskazówki”:
naciśnij CTRL+X i Tak zapisać i wyjść.
Teraz uruchom:
# diff próbka różnicowa1 próbka różnicowa2Zobaczmy wynik:
Powyższe wyjście „3c3” oznacza, że „wiersz 3 pierwszego pliku należy zastąpić wierszem 3 drugiego pliku”. Przyjazną częścią wyjścia jest to, że pokazuje nam, jaki tekst należy zmienić („treść dla ciebie" dla "wskazówki dla ciebie”)
To pokazuje nam, że odniesienie do polecenia diff nie jest pierwszym plikiem, ale drugim, dlatego pierwszy plik trzecia linia (pierwsza 3) musi zostać zmieniona (C) jako trzecia linia drugiego pliku (drugi 3).
Polecenie diff może pokazywać 3 znaki:
do: ta postać instruuje Zmiana musi być zrobione.
za: ta postać mówi, że coś musi być Dodany.
re: ta postać mówi, że coś musi być Usunięto.
Pierwsze liczby przed znakami należą do pierwszego pliku, a liczby po znakach do drugiego pliku.
Symbol < belongs to the first file and the symbol > do drugiego pliku, który jest używany jako odniesienie.
Odwróćmy kolejność plików, zamiast biegać
# diff próbka różnicowa1 próbka różnicowa2biegać:
# diff przykladka roznic2 przykladka roznic1Możesz zobaczyć, jak kolejność została odwrócona, a teraz plik diffsample1 jest używany jako odniesienie i instruuje nas, abyśmy zmienili „wskazówki dla Ciebie” na „treść dla Ciebie”, to był poprzedni wynik:
Teraz edytujmy plik diffsample1 w następujący sposób:
Usuń wszystkie wiersze, z wyjątkiem pierwszego wiersza w pliku diffsample1. Następnie uruchomić:
# diff przykladka roznic2 przykladka roznic1
Jak widać, ponieważ użyliśmy pliku diffsample1 jako odniesienia, aby plik diffsample2 był dokładnie równy, musimy usunąć (re) wiersze dwa i trzy (2,3) jak w pierwszym pliku i pierwszych wierszach (1) będzie równe.
Teraz odwróćmy kolejność i zamiast biegać”# diff próbka roznic2 próbka roznic1” biegać:
# diff próbka różnicowa1 próbka różnicowa2
Jak widać, podczas gdy poprzedni przykład poinstruował nas, abyśmy usunęli, ten instruuje nas, aby dodać (za) wiersze 2 i 3 po pierwszym pliku pierwszy wiersz (1).
Teraz popracujmy nad właściwością tego programu z rozróżnianiem wielkości liter.
Edytuj plik diffsample2 na przykład:
I edytuj plik diffsample1 jako:
Jedyną różnicą są wielkie litery w pliku diffsample2. Teraz porównajmy to ponownie za pomocą diff:
# diff próbka różnicowa1 próbka różnicowa2
Jak widać różnice znalezione przez diff, wielkie litery, unikamy wykrywania przez diff dużych liter, jeśli nie interesuje nas wielkość liter, dodając -ja opcja:
# diff -i diffprzykład1 diffprzykład2
Nie znaleziono żadnych różnic, wykrywanie przypadków było wyłączone.
Teraz zmieńmy format wyjściowy, dodając opcję -ty używane do drukowania zunifikowanych wyjść:
Dodatkowo, do daty i godziny, wyjście pokazuje się z - i + symbol co należy usunąć, a co dodać, aby pliki były równe.
Na początku tego artykułu powiedziałem, że spacje i tabulatory muszą być równe w obu plikach, ponieważ są one również wykrywane przez polecenie diff, jeśli chcemy, aby polecenie diff ignorowało spacje i tabulatory, musimy zastosować -w opcja.
Otwórz plik diffsample2 i dodaj spacje i tabulatory:
Jak widzisz dodałem kilka tabulatorów po „najlepsze” w drugim wierszu oraz spacje we wszystkich wierszach, zamknij, zapisz plik i uruchom:
# diff próbka różnicowa1 próbka różnicowa2
Jak widać, poza dużymi literami znaleziono różnice. Teraz zastosujmy opcję -w nakazać diff ignorowanie spacji:
Jak widać, pomimo tabulacji diff znalazła jako różnicę tylko wielkie litery.
Teraz dodajmy ponownie opcję -i:
Polecenie diff ma dziesiątki dostępnych opcji, które można zastosować, aby zignorować, zmienić dane wyjściowe, rozróżnić kolumny, jeśli są obecne itp. Możesz uzyskać dodatkowe informacje na temat tych opcji za pomocą polecenia man lub na http://man7.org/linux/man-pages/man1/diff.1.html. Mam nadzieję, że ten artykuł z przykładami poleceń diff w Linuksie okazał się przydatny. Śledź LinuxHint, aby uzyskać więcej wskazówek i aktualizacji dotyczących systemu Linux i sieci.