Cos'è nl.?

nl è un comando Unix che aggiunge numeri di riga a un file di testo. È uno strumento utile per numerare righe in documenti, codice sorgente o altri file di testo.

Sintassi:

nl [OPZIONE]... [FILE]...

Funzionalità Principali:

  • Numerazione delle righe: nl legge il file di input (o l'input standard se non viene specificato alcun file) e aggiunge un numero di riga all'inizio di ogni riga (o di determinate righe, a seconda delle opzioni).
  • Personalizzazione: nl offre diverse opzioni per personalizzare il modo in cui le righe vengono numerate, come la formattazione dei numeri, l'intervallo tra i numeri e il testo, e le righe da numerare.
  • Output: nl invia l'output con le righe numerate all'output standard.

Opzioni Comuni:

  • -b TIPO (o --body-numbering=TIPO): Specifica il tipo di riga da numerare. Tipi comuni includono:

    • a: Numera tutte le righe.
    • t: Numera solo le righe non vuote (predefinito).
    • n: Non numerare nessuna riga.
    • pREGEXP: Numera solo le righe che corrispondono all'espressione regolare REGEXP. Vedi l'articolo sulle espressioni%20regolari.
  • -f TIPO (o --footer-numbering=TIPO): Specifica il tipo di riga da numerare nella sezione del footer del file (se diviso in sezioni con -p). I tipi sono gli stessi di -b.

  • -h TIPO (o --header-numbering=TIPO): Specifica il tipo di riga da numerare nella sezione dell'header del file (se diviso in sezioni con -p). I tipi sono gli stessi di -b.

  • -i N (o --line-increment=N): Imposta l'incremento tra i numeri di riga su N. Il valore predefinito è 1.

  • -n FORMATO (o --number-format=FORMATO): Specifica il formato del numero di riga. Formati comuni includono:

    • ln: Allineamento a sinistra, sopprimendo gli zeri iniziali.
    • rn: Allineamento a destra, sopprimendo gli zeri iniziali.
    • rz: Allineamento a destra, con zeri iniziali. Vedi l'articolo sull'allineamento.
  • -w N (o --number-width=N): Imposta la larghezza del campo per i numeri di riga su N caratteri. Il valore predefinito è 6.

  • -s STRINGA (o --separator=STRINGA): Specifica la stringa di separazione tra il numero di riga e il testo. Il valore predefinito è un carattere di tabulazione.

  • -v START (o --starting-line=START): Imposta il numero di riga iniziale su START. Il valore predefinito è 1.

  • -p : Tratta il file come se contenesse sezioni logiche. Le sezioni sono separate da righe contenenti solo il carattere separatore della pagina (normalmente \f). Permette di avere header, body e footer con numerazione differente. Il carattere di separazione della pagina è una sequenza%20di%20escape.

Esempi:

  • Numerare tutte le righe di un file:

    nl -b a file.txt
    
  • Numerare solo le righe non vuote (comportamento predefinito):

    nl file.txt
    
  • Numerare le righe con un formato di numero allineato a destra con zeri iniziali e una larghezza di 4:

    nl -n rz -w 4 file.txt
    
  • Numerare le righe a partire da 10:

    nl -v 10 file.txt
    

Utilità:

nl è utile per generare output formattato di file di testo, particolarmente quando si vuole fare riferimento a specifiche righe. Può essere usato in script di shell per automatizzare la generazione di report numerati o per elaborare file di testo in modo più strutturato. È uno strumento semplice ma efficace per la manipolazione di testo da riga di comando.