Przejdź do treści

diff · + dodane · − usunięte

Porównywanie tekstów

Porównanie „red, green, blue” z „red, yellow, blue” wiersz po wierszu daje 1 dodany wiersz, 1 usunięty wiersz i 2 niezmienione. Wklej dwa teksty, aby zobaczyć każdą różnicę.

Każdy dodany wiersz jest oznaczony znakiem +, a każdy usunięty znakiem −, a także pokolorowany, a zmienione znaki w zastąpionym wierszu są zaznaczone. Małe teksty porównują się w trakcie pisania; tekst nigdy nie opuszcza tej karty.

Scanned by NortonTM Safe Web

W skrócie

Cena
Bez opłat
Konto
Niepotrzebne
Wysyłanie plików
Nie dotyczy — oba teksty zostają w Twojej karcie
Metoda
Najdłuższy wspólny podciąg wierszy, ze zaznaczonymi zmienionymi znakami
Wynik
Pokolorowane i oznaczone wiersze albo unified diff z 3 wierszami kontekstu
Limit rozmiaru
5,000 wierszy i 5,000,000 znaków na tekst

Przykładowe porównanie i działanie opcji

Tabele pochodzą z tego samego kodu co narzędzie. Pierwsza porównuje dwa teksty po trzy wiersze; druga pokazuje, jak opcje zmieniają wynik dla jednej pary wierszy.

„red, green, blue” wobec „red, yellow, blue”, po jednym w wierszu
ZnacznikWiersz
=red
−green
+yellow
=blue
„Hello World” wobec „hello world” (dwie spacje)
UstawienieWiersze dodaneWiersze usunięte
Dokładnie11
Ignoruj wielkość liter11
Ignoruj białe znaki11
Ignoruj wielkość liter i białe znaki00

Jak porównać dwa teksty

1

Wklej dwa teksty

Umieść starszy tekst w polu Tekst oryginalny, a nowszy w polu Tekst zmieniony. Dwa krótkie przykłady już tam są. Zamień teksty wymienia oba pola, a Wyczyść oba opróżnia je.

2

Wybierz, co jest różnicą

Zaznacz Ignoruj wielkość liter, aby uznać „Hello” i „hello” za ten sam wiersz, oraz Ignoruj białe znaki, aby pomijać spacje na końcach wiersza i powtórzone spacje w środku. Pokaż tylko zmiany zwija niezmienione wiersze, zostawiając 3 wiersze wokół każdej zmiany.

3

Odczytaj lub skopiuj różnicę

Wiersze oznaczone − istnieją tylko w tekście oryginalnym, a oznaczone + tylko w tekście zmienionym. Skopiuj diff w formacie unified, aby wkleić go do wiadomości lub łatki, albo pobierz go jako plik .diff.

Jak działa porównanie

Oba teksty są dzielone na wiersze, a narzędzie szuka najdłuższego wspólnego podciągu wierszy: największego zbioru wierszy, które występują w obu tekstach w tej samej kolejności. Każdy wiersz spoza tego zbioru jest zgłaszany jako usunięty (tylko w oryginale) albo dodany (tylko w tekście zmienionym), więc diff ma jak najmniej zmienionych wierszy. Gdy po usuniętym wierszu bezpośrednio następuje dodany, znaki różniące oba wiersze są zaznaczone.

Diff działa na wierszach, bo to jednostka, w której zmieniają się kod, pliki konfiguracyjne i listy, a porównanie wierszy pozostaje szybkie dla tysięcy wierszy. Wiersz, który został przesunięty, pojawia się raz jako usunięty i raz jako dodany; zmienione słowo pokazuje się jako zastąpiony wiersz z zaznaczonymi znakami. Zakończenia wierszy są normalizowane, więc plik zapisany z łamaniem wierszy Windows pasuje do tego samego pliku z łamaniem Unix. Każdy tekst może mieć do 5,000 wierszy i 5,000,000 znaków. Wynik w formacie unified diff używa powszechnego formatu: nagłówek --- i +++, a potem bloki @@ z 3 wierszami kontekstu.

Pytania o porównywanie tekstów

Jak diff tekstu decyduje, co się zmieniło?

Znajduje najdłuższy wspólny podciąg wierszy, czyli najwięcej wierszy, które oba teksty mają w tej samej kolejności. Wiersze spoza niego są oznaczone −, jeśli ma je tylko oryginał, i +, jeśli ma je tylko tekst zmieniony. „red, green, blue” wobec „red, yellow, blue” zachowuje red i blue, usuwa green i dodaje yellow.

Dlaczego porównanie działa na wierszach, a nie na słowach?

Wiersze to sposób, w jaki zorganizowane są kod, logi, listy i pliki konfiguracyjne, a wynik oparty na wierszach jest na tyle krótki, że da się go czytać. W zastąpionym wierszu znaki, które się różnią, są zaznaczone, więc zmianę jednego słowa w długim zdaniu łatwo zauważyć.

Co oznaczają kolory oraz znaki + i −?

Zielony wiersz ze znakiem + został dodany w tekście zmienionym. Czerwony wiersz ze znakiem − został usunięty z oryginału. Wiersze bez oznaczenia są takie same w obu. Znaki są wypisane obok kolorów, więc wynik jest czytelny bez odróżniania czerwonego od zielonego.

Jak zignorować różnice w wielkości liter lub spacjach?

Zaznacz Ignoruj wielkość liter, aby porównywać wiersze bez względu na wielkie litery, oraz Ignoruj białe znaki, aby pomijać spacje na początku i końcu wiersza i traktować każdy ciąg spacji w środku jako jedną spację. Po zaznaczeniu obu „Hello World” i „hello world” to ten sam wiersz.

Jak duże mogą być oba teksty?

Każdy tekst może mieć do 5,000 wierszy i 5,000,000 znaków. Tekst o 5,000 wierszach porównany ze swoją przestawioną kopią jest przetwarzany na obecnym komputerze w wyraźnie mniej niż sekundę. Powyżej 100,000 znaków łącznie porównanie zaczyna się po naciśnięciu Porównaj, a nie w trakcie pisania.

Czym jest unified diff?

To format tekstowy używany przez diff i Git. Zaczyna się od wiersza --- i wiersza +++ nazywających oba teksty, a potem jest jeden blok na grupę zmian. Blok zaczyna się nagłówkiem takim jak @@ -1,3 +1,3 @@, co oznacza 3 wiersze od wiersza 1 oryginału i 3 wiersze od wiersza 1 tekstu zmienionego, a każdy wiersz zaczyna się od spacji, + lub −.