Jak porównać dwa pliki w systemie Linux?

How Compare Two Files Linux



Jeśli chcesz porównać dwa pliki i rozszyfrować różnicę, użyj polecenia o nazwie różnica jest używany. Ten przewodnik koncentruje się na zapewnieniu korzystania z różnica polecenie z różnymi opcjami, aby uzyskać różnicę między dwoma plikami.

Jak więc działa różnica polecenie faktycznie działa? ten różnica polecenie porównuje dwa pliki i wyświetla listę różnic między obydwoma plikami. Dokładniej, daje listę modyfikacji, które należy wprowadzić w pierwszym pliku, aby pasowały do ​​drugiego pliku. ten różnica Polecenie jest również używane przez programistów, aby uzyskać różnicę między dwoma plikami kodu źródłowego do tworzenia łat.







Zanim zagłębimy się w przykłady, zwróć uwagę, że kolejność plików jest bardzo ważna. Ponieważ różnica polecenie daje wynik na podstawie kolejności plików.



Jak używać polecenia diff w systemie Linux do porównywania plików:

Składnia różnica polecenie jest wymienione poniżej:



$różnica [opcje] [plik1] [plik2]

Najpierw utwórz dwa pliki. Tworzę pliki tekstowe o nazwie plik_testowy_1.txt oraz test_file_2.txt . Te pliki zawierają treść z niewielką różnicą:





Teraz użyj następującego polecenia, aby uzyskać różnicę:



$różnicatest_file_1.txt test_file_2.txt

Standardowe wyjście wyświetlało wiersze, które pasują do kolejności plików wymienionych w poleceniu. Zdekodujmy więc dane wyjściowe:

Porównanie plików jest oznaczone etykietą, a każda etykieta ma numer po obu stronach. Format jest następujący:

[Numer wiersza pliku 1][Etykieta(a,c,d)][Numer wiersza pliku 2]

Istnieją trzy etykiety:

  • do – Dodaj: dodaj zawartość pierwszego pliku w celu zsynchronizowania z drugim plikiem.
  • C – Zmień: wskazuje, że konieczna jest modyfikacja zawartości pierwszego pliku w celu dopasowania do drugiego pliku.
  • D – Usuń: usuń zawartość z pierwszego pliku, aby dopasować ją do drugiego.

2k1 wskazuje, aby usunąć wiersz numer 2 pierwszego pliku, aby dopasować drugi plik z wiersza numer 1.

Podobnie, 4c3 oznacza dokonanie zmiany w czwartym wierszu pierwszego pliku, aby dopasować wiersz numer 3 drugiego pliku, ponieważ oba wiersze są nieco inne.

Istnieje inna metoda, aby zobaczyć różnicę, użyj różnica polecenie z -oraz opcja:

$różnica -oraz -W 60test_file_1.txt test_file_2.txt

W powyższym wyniku zawartość plik_testowy_1.txt jest wyświetlany po lewej stronie, natomiast treść text_file_2.txt jest wyświetlany po prawej stronie. Różnicę wskazują symbole:

  • | — Linia jest inna w drugim pliku
  • > — Linia jest dodatkowa w drugim pliku
  • <— Line has been deleted from the second file

-W wskazuje szerokość między zawartością dwóch plików. Aby otrzymać osobno i zobaczyć różnicę, użyj:

$różnica -oraz -W 60 --pomiń-wspólne-liniitest_file_1.txt test_file_2.txt

Jak uzyskać wynik w jednej linii za pomocą polecenia diff:

Jeśli metoda z etykietą jest trudna do odszyfrowania, istnieje prostsze podejście. Używając -Q opcja z różnica polecenie daje wynik w jednym wierszu. No, ale bez żadnych dodatkowych informacji:

$różnica -Qtest_file_1.txt test_file_2.txt

Jeśli pliki się różnią, powyższe polecenie da wynik. Jeśli pliki są identyczne, nie będzie żadnych danych wyjściowych. Aby to zademonstrować, tworzę kopię plik_testowy_1.txt za pomocą:

$cptest_file_1.txt test_file_3.txt

Zostanie utworzony nowy plik o nazwie plik_testowy_3.txt zawierające te same treści, które plik_testowy_1.txt ma. Teraz użyj:

$różnica -Qtest_file_1.txt test_file_2.txt

Ponieważ oba pliki mają podobną zawartość, nie byłoby wyjścia.

Jak sprawdzić różnicę plików w trybie kontekstowym za pomocą polecenia diff:

Aby uzyskać porównanie w trybie kontekstowym, -C opcja będzie używana z różnica Komenda:

$różnica -Ctest_file_1.txt test_file_2.txt

Przeanalizujmy wyniki.

Aby zachować różnicę, pierwszy plik jest oznaczony *** wraz z datą i godziną utworzenia, a drugi plik jest oznaczony —.

Następna linia oznacza zakres linii branych pod uwagę podczas porównania. W przypadku pierwszego pliku jest *** 1,6 **** a dla drugiego pliku jest —1,5—- :

Różnicę wskazują symbole:

  • + : Linia nie występuje w pierwszym pliku. Włóż go do pierwszego pliku lub usuń z drugiego pliku, aby dopasować oba pliki.
  • – : Wiersz istnieje w pierwszym pliku, ale nie w drugim pliku. Spróbuj wstawić go do drugiego pliku lub usunąć go z pierwszego, aby dopasować oba pliki.
  • ! : Linia wymaga modyfikacji w celu dopasowania.

Jak sprawdzić różnicę plików w trybie ujednoliconym za pomocą polecenia diff:

Tryb ujednolicony jest dość podobny do trybu kontekstowego, ale bez zbędnych informacji. Flaga, której używamy, to -u :

$różnica -utest_file_1.txt test_file_2.txt

Na wyjściu pierwszy plik jest oznaczony — a drugi przez +++. Druga linia pokazuje liczbę linii branych pod uwagę do porównania w obu plikach, a następnie zawartość do usunięcia, dodania lub zmodyfikowania wraz z symbolami. W obu plikach nie będzie symbolu z podobnymi liniami.

Jak zignorować rozróżnianie wielkości liter podczas używania polecenia diff:

Jeśli chcesz porównać pliki, ignorując rozróżnianie wielkości liter, użyj -i flaga:

$różnica -itest_file_1.txt test_file_2.txt

Dla demonstracji zrobiłem D z Głęboko w w pierwszym pliku mały:

Jak widać w pierwszym poleceniu, różnica jest wskazana; podczas używania -i ta różnica została usunięta.

Kilka innych przydatnych opcji różnica polecenia są wymienione poniżej:

Opcja Opis
-do Ta opcja traktuje wszystkie pliki jako pliki tekstowe
-B Ignoruje modyfikacje, w których wszystkie linie są puste
-ORAZ Ta opcja ignoruje rozwijanie tabulacji
-I Ignoruje zmiany, w których wszystkie linie pasują
-s Daje wyjście, gdy dwa pliki są identyczne
-w Ignoruje wszystkie białe znaki
-Z Ignoruje białe znaki na końcu linii

Jak używać edytora Vim do porównania dwóch plików:

Inną metodą porównania dwóch plików jest użycie vimdiff Komenda. W tym celu musisz mieć zainstalowany vim:

$sudotrafnyzainstalować przyszedłem

Teraz, aby porównać dwa pliki, użyj:

$vimdiff plik_testowy_1.txt plik_testowy_2.txt

Oba pliki zostaną otwarte obok siebie. Część, która nie pasuje, zostanie podświetlona:

Jak porównać dwa pliki za pomocą colordiff:

Innym podejściem jest swego rodzaju rozszerzenie różnica Komenda. Możesz sprawić, by porównanie było bardziej rozpoznawalne, dodając do niego kolory. Aby zainstalować, użyj:

$sudotrafnyzainstalowaćróżnica kolorów

Aby porównać pliki, użyj:

$colordiff test_file_1.txt test_file_2.txt

Możesz wymienić różnica z różnica kolorów aby uzyskać standardowe wyjście różnica polecenie w kolorowym formacie.

Wniosek:

Aby porównać pliki w systemie Linux, a nawet w systemie macOS, używane narzędzie nazywa się diff. Narzędzie diff porównuje dwa pliki i podaje informacje o różnicach między tymi dwoma plikami. Deweloperzy używają przede wszystkim polecenia diff do tworzenia plików poprawek.

W tym przewodniku dokładnie omówiliśmy różnica polecenie i jak go używać do porównania dwóch plików z różnymi opcjami. Nauczyliśmy się również, jak używać różnica kolorów aby różnice między plikami były bardziej rozpoznawalne. Ale jeśli uważasz, że narzędzie oparte na terminalu jest trudne w użyciu, istnieją również narzędzia oparte na GUI, takie jak Kompare, DiffMerge, Meld — Diff Tool i Diffuse — GUI Giff Tool.