W świecie Linuksa zarządzanie plikami i porównywanie plików to typowe zadanie zarówno administratorów systemów, jak i programistów. Możliwość porównywania plików linia po linii ma kluczowe znaczenie dla identyfikacji różnic, debugowania kodu i zapewnienia integralności danych. Potężnym narzędziem ułatwiającym ten proces jestdiff>
Komenda. W tym artykule omówimy, jak korzystać zdiff>
polecenie porównywania plików linia po linii w systemie Linux.
Java math.random
Spis treści
- Podstawowa składnia polecenia diff
- Opcje dostępne w poleceniu diff
- Praktyczna implementacja Jak porównywać pliki linia po linii w systemie Linux? :
- Porównywanie dwóch plików
- Usuwanie linii w plikach za pomocą polecenia diff
- Wyświetlanie różnic w trybie kontekstowym
- Wyświetlanie różnic w trybie ujednoliconym
- Porównywanie plików bez uwzględniania wielkości liter
- Wyświetlanie wersji różnicowej
Zrozumienie polecenia diff
różnica oznacza różnica .Thediff>
Command to wszechstronne narzędzie, które jest preinstalowane w większości dystrybucji Linuksa. Jego głównym celem jest porównanie zawartości dwóch plików i wyświetlenie różnic między nimi. Polecenie zapewnia kompleksowy sposób wyróżniania zmian, uzupełnień i usunięć w przejrzystym i czytelnym formacie.
To polecenie służy do wyświetlania różnic w plikach poprzez porównywanie plików linia po linii. W odróżnieniu od swoich kolegów, cmp I kom , mówi nam, które linie w jednym pliku należy zmienić, aby oba pliki były identyczne.
Najważniejszą rzeczą do zapamiętania jest to różnica używa pewnych specjalne symbole I instrukcje które są wymagane, aby dwa pliki były identyczne. Zawiera instrukcje dotyczące zmiany pierwszego pliku, aby pasował do drugiego pliku.
Podstawowa składnia polecenia diff
Podstawowa składniadiff>
polecenie jest następujące:
diff [OPTION]... FILE1 FILE2>
Tutaj, ` FILE1`>
i ` FILE2`>
to dwa pliki, które chcesz porównać.
` OPTION`>
flaga pozwala dostosować zachowanie pliku ` diff`>
Komenda.
Opcje dostępne w poleceniu diff
Opcja | Opis |
---|---|
| Różnice wyjściowe w trybie kontekstowym |
| Różnice wyjściowe w trybie ujednoliconym (bardziej zwięzłe) |
| Wykonaj porównanie bez uwzględniania wielkości liter |
–ignoruj-całą-spację inicjator słownika c# | Ignoruj białe znaki podczas porównywania linii |
-krótki | Wyświetla tylko informację, czy pliki się różnią, bez szczegółów |
–rekurencyjne | Rekursywnie porównuj katalogi |
| Wyświetl wynik w formacie side-by-side |
Praktyczna implementacja Jak porównywać pliki linia po linii w systemie Linux? :
Porównywanie dwóch plików
Porównaj pliki linia po linii w systemie Linux.
sortuj tablicę w Javie
Powiedzmy, że mamy dwa pliki z nazwami a.txt I b.txt obejmujący 5 stanów indyjskich.
cat a.txt cat b.txt>

wyświetlanie zawartości plików za pomocą polecenia cat
Teraz, stosując polecenie diff bez żadnej opcji, otrzymamy następujący wynik:
diff a.txt b.txt>

porównywanie plików linia po linii w systemie Linux
Przyjrzyjmy się, co oznacza ten wynik. Pierwsza linijka różnica dane wyjściowe będą zawierać:
- Numery linii odpowiadające pierwszemu plikowi,
- Specjalny symbol i
- Numery linii odpowiadające drugiemu plikowi.
Podobnie jak w naszym przypadku, 0a1 co znaczy Po linie 0 (na samym początku pliku) musisz dodać Tamil Nadu aby dopasować drugą linię pliku o numerze 1. Następnie informuje nas, jakie linie znajdują się w każdym pliku poprzedzonym symbolem:
- Wiersze poprzedzone a < to linie z pierwszego pliku.
- Linie poprzedzone przez > to linie z drugiego pliku.
- Następna linia zawiera 2,3c3 co oznacza, że linia 2 do linii 3 w pierwszym pliku musi zostać zmieniona, aby odpowiadała linii nr 3 w drugim pliku. Następnie mówi nam te linie z powyższymi symbolami.
- Trzy kreski (-) po prostu oddziel linie pliku 1 i pliku 2.
Jako podsumowanie, aby oba pliki były identyczne, najpierw dodaj Tamil Nadu w pierwszym pliku na samym początku dopasuj linię 1 drugiego pliku, a następnie zmień linie 2 i 3 pierwszego pliku, tj. Uttar Pradesh I Kalkuta z linią 3 drugiego pliku, tj. Andhra Pradesh . Następnie zmień linię 5 pierwszego pliku, tj. Dżammu i Kaszmir z linią 5 drugiego pliku, tj. Uttar Pradesh .
Usuwanie linii w plikach za pomocą polecenia diff
Rozważmy scenariusz, w którymdiff>
wskazuje na potrzebę usunięcia linii. Biorąc pod uwagę dwa pliki,a.txt>
Ib.txt>
:

wyświetlanie zawartości plików za pomocą polecenia cat
diff a.txt b.txt>

Usuwanie linii w pliku
Tutaj powyżej wyjście 3d2 oznacza usunięcie trzeciej linii pierwszego pliku, tj. Telangana tak aby oba pliki zsynchronizować na linii 2.
Wyświetlanie różnic w trybie kontekstowym
Aby wyświetlić różnice w trybie kontekstowym, użyj opcji -C opcja. Spróbujmy to zrozumieć na przykładzie, mamy dwa pliki plik1.txt I plik2.txt :

wyświetlanie zawartości plików za pomocą polecenia cat
diff -c file1.txt file2.txt>

Wyświetlanie różnic w trybie kontekstowym
W powyższym wyjściu:
szybkie sortowanie
- Pierwszy plik jest oznaczony przez `
***`>
, a drugi plik jest oznaczony przez `---`>
. - Linia z `
***************`>
służy jako separator. - Pierwsze dwie linie zawierają informacje o pliku 1 i pliku 2, wyświetlając nazwę pliku, datę i czas modyfikacji.
- Następnie trzy gwiazdki `
***`>
po nich następuje zakres linii od pierwszego pliku (linie od 1 do 4). Cztery gwiazdki `****`>
następować. Następnie wyświetlana jest zawartość pierwszego pliku z określonymi wskaźnikami:- Jeśli linia nie uległa zmianie, jest ona poprzedzona dwiema spacjami.
- Jeśli linia wymaga zmiany, jest ona poprzedzona symbolem i spacją. Symbole wskazują:
-
`+`>
: Linia w drugim pliku, która ma zostać dodana do pierwszego pliku w celu uzyskania identycznych wyników. -
`-`>
: Linia w pierwszym pliku, która ma zostać usunięta w celu uzyskania identycznych wyników.
-
- Trzy kreski `
---`>
po nich następuje zakres linii z drugiego pliku (linie od 1 do 4), oddzielone przecinkami. Cztery kreski `----`>
postępuj zgodnie z instrukcjami i zostanie wyświetlona zawartość drugiego pliku.
Wyświetlanie różnic w trybie ujednoliconym
Aby wyświetlić różnice w trybie ujednoliconym, użyj opcji -W opcja. Jest podobny do trybu kontekstowego, ale tak nie wyświetla żadnych zbędnych informacji lub pokazuje informacje w zwięzłej formie.

wyświetlanie zawartości plików za pomocą polecenia cat
diff -u file1.txt file2.txt>

Wyświetlanie różnic w trybie ujednoliconym
W powyższym wyjściu:
- Pierwszy plik jest oznaczony przez `
---`>
, a drugi plik jest oznaczony przez `+++`>
. - Pierwsze dwie linie zawierają informacje o pliku 1 i pliku 2, w tym datę i godzinę modyfikacji.
- Potem `
@@ -1>
`,`>
4 +1`>
,`>
4 @@`>
oznacza zakres linii dla obu plików. W tym przypadku reprezentuje linie od 1 do 4 w obu plikach. - Kolejne linie przedstawiają zawartość plików wraz z określonymi wskaźnikami:
- Niezmienione linie są wyświetlane bez przedrostka.
- Linie w pierwszym pliku, który ma zostać usunięty, są poprzedzone prefiksem
->
. - Linie w drugim pliku, który ma zostać dodany, są poprzedzone prefiksem
+>
.
W tym przykładzie dane wyjściowe wskazują, że aby oba pliki były identyczne, należy usunąć linie zawierające mv i comm z pierwszego pliku (file1.txt>
) i należy do niego dodać linie zawierające diff i comm.
Porównywanie plików bez uwzględniania wielkości liter
Domyślnie ` diff`>
wielkość liter ma znaczenie. Aby przeprowadzić porównanie bez uwzględniania wielkości liter, użyj ` -i`>
opcja:

wyświetlanie zawartości plików za pomocą polecenia cat
Thediff>
polecenie jest następnie używane do porównania tych plików z plikiem-i>
opcja, która sprawia, że w porównaniu nie jest uwzględniana wielkość liter.
diff -i file1.txt file2.txt>

Porównywanie bez uwzględniania wielkości liter
2d1>
: Oznacza to zmianę w linii 2 pierwszego pliku (file1.txt>
). Thed>
oznacza usuwanie i mówi o usunięciu linii 2 z pierwszego pliku.>
: Ta linia oznacza treść linii, która ma zostać usunięta. W tym przypadku jest to mv.
3a3>
: Oznacza to dodanie w linii 3 pierwszego pliku (file1.txt>
). Thea>
oznacza dodanie i mówi o dodaniu linii na pozycji 3.>różnica>
: Ta linia reprezentuje treść, która ma zostać dodana. W tym przypadku jest różnie.
Podsumowując, wynik mówi nam, że aby oba pliki były identyczne (ignorując wielkość liter), musimy usunąć linię zawierającą mv z pierwszego pliku (file1.txt>
) i dodaj różnicę linii w tej samej pozycji. Thediff>
polecenie, za pomocą-i>
pozwala na porównanie bez uwzględniania wielkości liter, co powoduje, że podczas analizy wartości mv i MV są traktowane jako takie same.
Wyświetlaniediff>
Wersja
Aby sprawdzić wersję ` diff`>
zainstalowany w twoim systemie, użyj rozszerzenia ` --version`>
opcja:
diff --version>

Wyświetlanie wersji polecenia diff
To polecenie dostarcza informacji o wersji, licencji i autorach pliku ` diff`>
pożytek.
Często zadawane pytania dotyczące polecenia diff – często zadawane pytania
Jak korzystać zdiff>
polecenie porównania dwóch plików linia po linii w systemie Linux?
Aby porównać dwa pliki linia po linii za pomocą metody
diff>
polecenie, po prostu użyj następującej składni:diff file1.txt file2.txt>To polecenie wyświetli różnice między dwoma plikami, podświetlając dodatki, usunięcia i modyfikacje.
iteruj mapę Java
Czy mogę zignorować różnice w białych znakach podczas porównywania plików z rozszerzeniemdiff>
Komenda?
Tak
diff>
polecenie udostępnia-w>
Lub--ignore-all-space>
opcja ignorowania różnic w białych znakach. Na przykład:diff -w file1.txt file2.txt>Jest to szczególnie przydatne przy porównywaniu plików kodu, w których zmiany wcięcia lub odstępów nie są znaczące.
Jak mogę utworzyć plik poprawki za pomocądiff>
Komenda?
Aby utworzyć plik poprawki reprezentujący różnice między dwoma plikami, użyj metody
-u>
opcję i przekieruj wyjście do pliku:diff -u file1.txt file2.txt>moja łatka.łatka>Wygenerowany plik poprawki można później zastosować w celu zsynchronizowania innego pliku ze zmianami.
W jakim formacie jest ujednolicony plikdiff>
wynik i czym różni się od formatu kontekstowego?
Ujednolicony format (`
-u`>
opcja) w `diff`>
dane wyjściowe zapewniają bardziej zwięzłą i czytelną reprezentację różnic w porównaniu z formatem kontekstowym (`-c`>
opcja). Wyświetla zmiany w bardziej zwartej formie, co ułatwia zrozumienie modyfikacji pomiędzy plikami.
Jak rekursywnie porównać dwa katalogi w systemie Linux za pomocą metodydiff>
Komenda?
Aby rekurencyjnie porównać dwa katalogi i ich zawartość, użyj rozszerzenia `
-r`>
lub `--recursive`>
opcja zdiff>
Komenda:diff -r directory1/ directory2/>To polecenie porównuje wszystkie pliki w określonych katalogach i dostarcza szczegółowych informacji o różnicach.
Wniosek
W świecie Linuksa porównywanie plików jest częstym zadaniem administratorów i programistów systemów. ` diff>
polecenie jest przydatnym narzędziem pomagającym w tym procesie. W tym artykule opisano, jak używać plików ` diff`>
do porównywania plików linia po linii w systemie Linux. Obejmuje podstawową składnię, ważne opcje, takie jak tryb kontekstowy i tryb ujednolicony, oraz praktyczne zastosowania, takie jak tworzenie plików poprawek i rekurencyjne porównywanie katalogów. Niezależnie od tego, czy debugujesz kod, czy zapewniasz integralność plików, zrozumienie i opanowanie rozszerzenia ` diff`>
polecenie jest niezbędne do wydajnego zarządzania plikami w systemie Linux.