Ti sei mai trovato in una situazione in cui desideri piegare o interrompere l'output di un comando per adattarlo a una larghezza specifica? Mi sono trovato in questa situazione alcune volte durante l'esecuzione di VM, in particolare i server senza GUI. Per ogni evenienza, se hai mai voluto limitare l'output di un comando a una larghezza particolare, non cercare da nessuna parte! Usa semplicemente piega comando! Il comando piega avvolge ogni riga in un file di input per adattarla a una larghezza specificata e la stampa sull'output standard.
In questo breve tutorial vedremo l'utilizzo del comando fold con esempi pratici.
Esercitazione sul comando piega con esempi
Il comando Fold è la parte del pacchetto GNU coreutils, quindi non ci preoccupiamo dell'installazione.
La sintassi tipica del comando fold:
fold [OPTION]... [FILE]...
Permettimi di mostrarti alcuni esempi, così puoi farti un'idea migliore del comando fold. Ho un file chiamato linux.txt con alcune righe casuali.
Per avvolgere ogni riga nel file sopra alla larghezza predefinita, esegui:
$ fold linux.txt
80 colonne per riga è la larghezza predefinita. Ecco l'output del comando precedente:
Come puoi vedere nell'output sopra, il comando fold ha limitato l'output a una larghezza di 80 caratteri.
Ovviamente puoi specificare la tua larghezza preferita, ad esempio 50, come di seguito:
$ fold -w50 linux.txt
L'output di esempio sarebbe:
Invece di visualizzare solo l'output, possiamo anche scrivere l'output in un nuovo file come mostrato di seguito:
$ fold -w50 linux.txt > linux1.txt
Il comando precedente avvolgerà le righe di linux.txt a una larghezza di 50 caratteri e scrive l'output in un nuovo file denominato linux1.txt .
Controlliamo il contenuto del nuovo file:
$ cat linux1.txt
Hai notato da vicino l'output dei comandi precedenti? Alcune parole sono interrotte tra le righe. Per superare questo problema, possiamo utilizzare '-s' flag per interrompere le linee negli spazi.
Il comando seguente esegue il wrapping di ogni riga in un determinato file alla larghezza "50" e interrompe la riga in spazi:
$ fold -w50 -s linux.txt
Esempio di output:
Vedere? Ora, l'output è molto chiaro. Questo comando inserisce ogni parola separata da spazi in una nuova riga e le parole con lunghezza> 50 vengono avvolte.
In tutti gli esempi precedenti, abbiamo limitato la larghezza dell'output in base alle colonne. Tuttavia, possiamo applicare la larghezza dell'output al numero di byte specificato utilizzando -b opzione. Il comando seguente interrompe l'output a 20 byte.
$ fold -b20 linux.txt
Esempio di output:
Per maggiori dettagli, fare riferimento alle pagine man.
$ man fold