Comando fold su Linux: come dividere le righe lunghe

Il comando fold spezza le righe lunghe dell’input per limitarne la larghezza in uscita. A differenza di fmt, che riorganizza i paragrafi, fold interviene sulla larghezza delle singole righe.

La larghezza predefinita è di 80 colonne. L’opzione -s privilegia, quando possibile, la divisione in corrispondenza degli spazi. Il risultato viene inviato allo standard output e il file originale non viene modificato.

Sintassi di base

fold [opzioni] [file ...]

Implementazione e opzioni possono variare tra distribuzioni. Consultare man fold sul proprio sistema.

Esempi di utilizzo

Per visualizzare un file con la larghezza predefinita di 80 colonne, eseguire:

fold long-lines.txt

Per impostare 60 colonne e privilegiare la divisione sugli spazi, usare:

fold -s -w 60 paragraph.txt

Sostituire i nomi con quelli dei file disponibili. Una parola più lunga della larghezza scelta può comunque essere spezzata.

Provare una larghezza fissa

Questo esempio crea un input senza spazi e lo divide ogni quattro colonne:

printf 'abcdefghij\n' | fold -w 4

Risultato atteso:

abcd
efgh
ij

Opzioni e limiti

Opzione Funzione
-w N Imposta la larghezza dell’output.
-s Divide sugli spazi quando possibile.
-b Conta la larghezza in byte anziché in colonne visualizzate.

L’opzione -b può interrompere un carattere UTF-8 a metà della sequenza di byte. Prestare attenzione ai testi multilingue: anche tabulazioni, caratteri larghi ed emoji possono essere visualizzati diversamente a seconda dell’ambiente. Se i confini delle righe originali hanno significato per i dati, controllare il risultato prima di utilizzarlo come input di un altro programma.

Differenza tra fold e fmt

fold limita la lunghezza delle singole righe, mentre fmt riorganizza le interruzioni di riga di un paragrafo. Per i dettagli sulle opzioni e sul comportamento GNU, consultare la documentazione GNU di fold.