Ten przewodnik pokaże Ci, jak używać Linuksa do porównywania dwóch plików i wyświetlać ich różnicę na ekranie lub w pliku.
Nie musisz instalować żadnego specjalnego oprogramowania, aby porównywać pliki za pomocą Linuksa, ale musisz wiedzieć, jak otworzyć okno terminala.
Jak wynika z dołączonego przewodnika, istnieje wiele sposobów na otwarcie okna terminalu za pomocą systemu Linux. Najprostsze jest jednoczesne naciśnięcie klawiszy CTRL, ALT i T.
Tworzenie plików do porównania
Aby śledzić ten przewodnik, utwórz plik o nazwie "plik1" i wprowadź następujący tekst:
10 zielonych butelek stojących na ścianie
10 zielonych butelek stojących na ścianie
Jeśli jedna zielona butelka przypadkowo upadnie
Na ścianie stoi 9 zielonych butelek
Możesz utworzyć plik, wykonując następujące instrukcje:
-
Otwórz plik, wpisując następujące polecenie: nano file1
-
Wpisz tekst w edytorze nano
-
Naciśnij CTRL i O, aby zapisać plik
-
Naciśnij CTRL i X, aby opuścić plik
Teraz utwórz kolejny plik o nazwie "plik2" i wprowadź następujący tekst:
10 zielonych butelek stojących na ścianie
Jeśli jedna zielona butelka przypadkowo upadnie
Na ścianie stoi 9 zielonych butelek
Możesz utworzyć plik, wykonując następujące instrukcje:
-
Otwórz plik, wpisując następujące polecenie: nano file2
-
Wpisz tekst w edytorze nano
-
Naciśnij CTRL i O, aby zapisać plik
-
Naciśnij CTRL i X, aby opuścić plik
Jak porównać dwa pliki za pomocą systemu Linux
Polecenie używane w systemie Linux do pokazywania różnic między 2 plikami nazywa się poleceniem diff.
Najprostsza forma polecenia diff jest następująca:
diff plik1 plik2
Jeśli pliki są takie same, nie będzie żadnego wyjścia przy użyciu tego polecenia, jednak, ponieważ istnieją różnice, zobaczysz dane wyjściowe podobne do następujących:
2,4c2,3
<10 zielonych butelek stojących na ścianie
<Jeśli jedna zielona butelka powinna przypadkowo spaść
<Na ścianie stoi 9 zielonych butelek
…
> Jeśli jedna zielona butelka przypadkowo upadnie
> Na ścianie stoi 9 zielonych butelek
Początkowo wyniki mogą wydawać się mylące, ale gdy zrozumiesz terminologię, jest to dość logiczne.
Na własne oczy widać, że różnice między 2 plikami są następujące:
- Drugi plik ma tylko trzy linie, podczas gdy pierwszy plik ma 4.
- Drugi plik mówi "1 zielona butelka" na trzeciej linii, podczas gdy pierwszy plik mówi "jedna zielona butelka"
- Drugi plik mówi "tam" zamiast "tam" w ostatniej linii
Wynik polecenia diff pokazuje, że między wierszami 2 i 4 pierwszego pliku oraz wierszami 2 i 3 drugiego pliku występują różnice.
Następnie lista linii od 2 do 4 z pierwszego pliku, a następnie 2 różne linie w drugim pliku.
Jak pokazać, jeśli pliki są różne
Jeśli chcesz tylko wiedzieć, czy pliki są różne i nie interesuje Cię, które linie są różne, możesz uruchomić następujące polecenie:
diff -q plik1 plik2
Jeśli pliki są różne, wyświetlone zostaną:
Pliki file1 i file2 różnią się
Jeśli pliki są takie same, nic nie jest wyświetlane.
Jak wyświetlić wiadomość, jeśli pliki są takie same
Kiedy uruchamiasz polecenie, chcesz wiedzieć, że działa ono poprawnie, więc chcesz, aby komunikat był wyświetlany po uruchomieniu komendy diff, niezależnie od tego, czy pliki są takie same czy różne
Aby osiągnąć ten wymóg za pomocą polecenia diff, możesz użyć następującego polecenia :.
diff -s plik1 plik2
Teraz, jeśli pliki są takie same, otrzymasz następujący komunikat:
Pliki file1 i file2 są identyczne
Jak tworzyć różnice obok siebie
Jeśli istnieje wiele różnic, to bardzo szybko może być mylące, co do różnic między tymi dwoma plikami.
Możesz zmienić wyjście komendy diff, aby wyniki były wyświetlane obok siebie. W tym celu uruchom następujące polecenie:
diff -y plik1 plik2
Dane wyjściowe pliku używają | symbol, aby pokazać różnicę między dwiema liniami, a <, aby wyświetlić linię, która została usunięta, a a>, aby wyświetlić linię, która została dołączona.
Co ciekawe, jeśli uruchomisz polecenie za pomocą naszych plików demonstracyjnych, wszystkie wiersze będą wyświetlane jako różne, z wyjątkiem ostatniej linii pliku 2, która zostanie pokazana jako usunięta.
Ograniczanie szerokości kolumn
Porównywanie dwóch plików obok siebie może być trudne do odczytania, jeśli pliki mają dużo kolumn tekstu.
Aby ograniczyć liczbę kolumn, użyj następującego polecenia:
Jak ignorować różnice w wielkościach podczas porównywania plików
Jeśli chcesz porównać dwa pliki, ale nie obchodzi cię, czy wielkość liter jest taka sama pomiędzy tymi dwoma plikami, możesz użyć następującego polecenia:
Jak zignorować Trasę Białej Przestrzeni na końcu linii
Jeśli przy porównywaniu plików zauważysz, że wiele różnic i różnic są spowodowane przez białe spacje na końcu linii, możesz je pominąć jako wyświetlanie jako zmiany, uruchamiając następujące polecenie:
Jak zignorować wszystkie białe różnice między dwoma plikami
Jeśli interesuje Cię tylko tekst w pliku i nie obchodzi cię, czy w jednym jest więcej spacji niż w drugim, możesz użyć następującego polecenia:
Jak ignorować puste linie podczas porównywania dwóch plików
Jeśli nie przejmujesz się tym, że jeden plik może zawierać dodatkowe puste linie, możesz porównać pliki za pomocą następującego polecenia:
streszczenie
Możesz znaleźć więcej informacji, czytając instrukcję dla polecenia diff.
man diff
Polecenie diff może być użyte w najprostszej formie, aby pokazać różnice między dwoma plikami, ale możesz także użyć go do utworzenia pliku diff jako części strategii łatania, jak pokazano w tym przewodniku do polecenia łaty Linuksa.
Kolejną komendą, której możesz użyć do porównania plików, jest polecenie cmp przedstawione w tym przewodniku. To porównuje pliki bajt po bajcie.