Mam plik, który ma tylko jedną linię. Jego rozmiar wynosi około 20 000 bajtów.
Plik został zmodyfikowany i chciałem wiedzieć, gdzie.
Myślałem o użyciu diff, ale pokazuje mi pełną linię, ponieważ wyświetla linię, która ma różnicę - ale w tym przypadku jest to jedyna linia w pliku, która ma różnice.
Chciałem więc zobaczyć, jaka jest różnica.
Jakakolwiek rada?
Odpowiedzi:
Zakładając, że istnieje wiele białych znaków, tak jak w normalnym tekście, możesz podzielić plik na słowa i porównać go z normalnym narzędziem różnicowym, na przykład meld:
źródło
Znalazłbym różnicę, która robi różnice między wierszami. Używam xxdiff w systemie UNIX. Myślę, że WinMerge ma różnice wewnątrz linii w systemie Windows.
Inne odpowiedzi są również dobre: wdiff lub dzielenie na fragmenty - granice fragmentu są łatwiejsze do zdefiniowania, jeśli dane są rozdzielane, powiedzmy potokiem lub przecinkiem.
źródło
Jeśli jest to problem jednorazowy, utworzę kopie plików ze
\n
znakami wstawianymi co 50 znaków, a następnie różnicuję te kopie. (Wybrałem 50, ponieważ ułatwia to matematykę od zmiany numeru wiersza do przesunięcia bajtów w oryginalnych plikach, ale może dostosować to w górę / w dół w zależności od tego, co znalazłem.)źródło