Polecenia Linuksa

Przykłady poleceń diff w Linuksie

Przykłady poleceń diff w Linuksie
Polecenie diff jest poleceniem analitycznym lub informacyjnym, które wypisuje różnice między plikami, analizując je wiersz po wierszu lub katalogi rekurencyjnie, jednocześnie informując użytkownika, jakie zmiany są konieczne, aby pliki były równe, ten punkt jest ważny dla zrozumienia danych wyjściowych diff. Ten samouczek skupia się na poleceniu diff.

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óżnicowa2

Nastę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óżnicowa2

Zobaczmy 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óżnicowa2

biegać:

# diff przykladka roznic2 przykladka roznic1

Moż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:

#różnic  -wi próbka różnicowa2 próbka różnicowa1

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.

Gry Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Jeśli lubisz grać w gry na Linuksie za pomocą gamepada zamiast typowego systemu wprowadzania klawiatury i myszy, jest kilka przydatnych aplikacji dla ...
Gry Przydatne narzędzia dla graczy Linuksa
Przydatne narzędzia dla graczy Linuksa
Jeśli lubisz grać w gry w systemie Linux, prawdopodobnie używałeś aplikacji i narzędzi, takich jak Wine, Lutris i OBS Studio, aby poprawić wrażenia z ...
Gry Zremasterowane gry HD dla Linuksa, które nigdy wcześniej nie zostały wydane na Linuksa
Zremasterowane gry HD dla Linuksa, które nigdy wcześniej nie zostały wydane na Linuksa
Wielu twórców gier i wydawców wymyśla remaster HD starych gier, aby przedłużyć żywotność serii, prosimy fanów o kompatybilność z nowoczesnym sprzętem ...