Cosa sono i terminatori di riga?

Un terminatore di riga (anche chiamato newline o sequenza di fine riga) è un carattere speciale o una coppia di caratteri che marca dove una riga di testo termina e la successiva inizia. Tre distinte convenzioni esistono tra i sistemi operativi: LF (\n, un singolo carattere linefeed), CRLF (\r\n, un ritorno a capo seguito da un linefeed), e CR (\r, un ritorno a capo autonomo).

La differenza ha origine dall'hardware informatico primitivo. Le macchine da scrivere richiedevano due passaggi fisici per iniziare una nuova riga — spostare il carrello all'inizio (CR) e avanzare la carta di una riga (LF). I sistemi Unix hanno adottato solo LF negli anni '70, mentre MS-DOS e successivamente Windows hanno mantenuto la sequenza completa CR+LF. Il classico Mac OS (prima di OS X) utilizzava solo CR, anche se il moderno macOS segue la convenzione Unix LF.

I terminatori di riga misti sono comuni nei file che sono stati modificati su più piattaforme, trasferiti tra sistemi, o concatenati da fonti diverse. Possono causare bug sottili in script, strumenti di build e sistemi di controllo versione.

Descrizione dello strumento

Questo strumento analizza il testo o un file e rileva quali tipi di terminatori di riga sono presenti. Conta ogni tipo individualmente — CRLF, LF e CR — e segnala lo stile complessivo del terminatore di riga (incluso se il file ha terminatori misti). Fornisce inoltre statistiche di base sulle righe: conteggio totale delle righe, riga più lunga, riga più corta e lunghezza media della riga.

Funzionalità

  • Rileva tutti e tre i tipi di terminatori di riga: CRLF (Windows), LF (Unix/macOS) e CR (Mac classico)
  • Identifica i terminatori di riga misti e etichetta lo stile dominante
  • Accetta sia testo incollato tramite un editor di codice che file caricati di qualsiasi formato di testo
  • Conta ogni tipo di terminatore di riga indipendentemente senza doppio conteggio
  • Segnala il totale delle righe, la riga più lunga, la riga più corta e la lunghezza media della riga

Casi d'uso

  • Debug di errori di build multipiattaforma — gli script o i file di configurazione con terminatori CRLF inaspettati spesso si interrompono sui server Unix; utilizza questo strumento per confermare i terminatori di riga prima della distribuzione
  • Preparazione della revisione del codice — verifica che un file fornito da una macchina Windows utilizzi la convenzione LF prevista dal progetto prima del commit
  • Audit dei file di testo — ispeziona rapidamente file di log, CSV o esportazioni di dati per comprendere la loro struttura prima di analizzarli a livello di programmazione

Come funziona

Le sequenze CRLF (\r\n) vengono rilevate e conteggiate per prime utilizzando una corrispondenza regex. Le coppie corrispondenti vengono quindi rimosse dalla stringa prima di conteggiare separatamente i caratteri LF (\n) e CR (\r) autonomi. Ciò impedisce a un singolo \r\n di essere conteggiato sia come CR che come LF. Le statistiche delle righe sono derivate dividendo il testo originale su tutti e tre i modelli di terminatore di riga.