Czym są zakończenia linii?

Zakończenie linii (zwane również newline'em lub sekwencją end-of-line) to specjalny znak lub para znaków, która oznacza, gdzie kończy się jedna linia tekstu i zaczyna się następna. Istnieją trzy odrębne konwencje w różnych systemach operacyjnych: LF (\n, pojedynczy znak linefeed), CRLF (\r\n, powrót karetki następowany linefeed'em) i CR (\r, samodzielny powrót karetki).

Różnica pochodzi z wczesnych czasów informatyki. Maszyny do pisania wymagały dwóch fizycznych kroków, aby rozpocząć nową linię — przesunięcia karetki z powrotem na początek (CR) i przesunięcia papieru o jedną linię (LF). Systemy Unix przyjęły sam LF w latach 70., podczas gdy MS-DOS i późniejszy Windows zachowały pełną sekwencję CR+LF. Klasyczny Mac OS (przed OS X) używał samego CR, chociaż nowoczesny macOS podąża za konwencją Unix LF.

Mieszane zakończenia linii są powszechne w plikach, które były edytowane na wielu platformach, przesyłane między systemami lub łączone z różnych źródeł. Mogą powodować subtelne błędy w skryptach, narzędziach do budowania i systemach kontroli wersji.

Opis narzędzia

To narzędzie analizuje tekst lub plik i wykrywa, które typy zakończeń linii są obecne. Liczy każdy typ osobno — CRLF, LF i CR — i raportuje ogólny styl zakończenia linii (w tym czy plik ma mieszane zakończenia). Zapewnia również podstawowe statystyki linii: całkowitą liczbę linii, najdłuższą linię, najkrótszą linię i średnią długość linii.

Funkcje

  • Wykrywa wszystkie trzy typy zakończeń linii: CRLF (Windows), LF (Unix/macOS) i CR (klasyczny Mac)
  • Identyfikuje mieszane zakończenia linii i oznacza dominujący styl
  • Akceptuje zarówno wklejony tekst za pośrednictwem edytora kodu, jak i przesłane pliki w dowolnym formacie tekstowym
  • Liczy każdy typ zakończenia linii niezależnie bez podwójnego liczenia
  • Raportuje całkowitą liczbę linii, najdłuższą linię, najkrótszą linię i średnią długość linii

Przypadki użycia

  • Debugowanie błędów kompilacji na wielu platformach — skrypty lub pliki konfiguracyjne z nieoczekiwanymi zakończeniami CRLF często się psują na serwerach Unix; użyj tego narzędzia, aby potwierdzić zakończenia linii przed wdrożeniem
  • Przygotowanie do przeglądu kodu — sprawdź, czy plik przesłany z maszyny Windows używa oczekiwanej konwencji LF projektu przed zatwierdzeniem
  • Audyt plików tekstowych — szybko sprawdź pliki dziennika, CSV-e lub eksporty danych, aby zrozumieć ich strukturę przed ich programistycznym parsowaniem

Jak to działa

Sekwencje CRLF (\r\n) są najpierw wykrywane i liczone za pomocą dopasowania regex. Dopasowane pary są następnie usuwane z ciągu znaków przed osobnym liczeniem samodzielnych znaków LF (\n) i CR (\r). Zapobiega to liczeniu pojedynczego \r\n zarówno jako CR, jak i LF. Statystyki linii są wyprowadzane przez podzielenie oryginalnego tekstu na wszystkie trzy wzorce zakończeń linii.