Come usare il comando fold su Linux

Un prompt della shell su un PC Linux

Fatmawati Achmad Zaenuri/Shutterstock



Il Linux |_+_| comando porta l'output indisciplinato al tallone. Leggi ampi blocchi di testo, stringhe infinite e flussi non formattati controllando la larghezza dell'output. Impara come.

Come funzionano le righe di testo nel terminale Linux

Prima regola del combattimento Linux: conosci il tuo nemico. Quindi definiamolo. Che cos'è esattamente una riga di testo? È una sequenza di caratteri (lettere, numeri, simboli e spazi) terminata da un byte speciale che significa iniziare una nuova riga. In Linux e Unix, il carattere di nuova riga , chiamato anche avanzamento riga, viene utilizzato come indicatore di fine riga. Questo è un byte con un valore di 0x0a in esadecimale e dieci in decimale.





Sistemi operativi diversi utilizzano valori di byte diversi per indicare la fine di una riga. Windows utilizza una sequenza di due byte. Nei file di testo di Windows, il carattere di nuova riga è seguito immediatamente dal carattere di ritorno a capo , che è 0x0d in esadecimale e tredici in decimale.

I termini avanzamento riga e ritorno a capo risalgono indietro alla macchina da scrivere . La piastra, il cilindro attorno al quale era avvolta la carta , era montato su un carrello mobile. Il carrello si spostava di un carattere a sinistra ogni volta che si premeva un tasto. Per iniziare una nuova riga, si spingeva una leva che riportava il carrello nella sua posizione originale, e che faceva ruotare il rullo e spostava la carta verso l'alto dell'altezza di una riga. Questa azione era nota come ritorno del carrello e la rotazione del cilindro (e l'avanzamento della carta) era nota come avanzamento riga.



La leva è stata sostituita da una chiave quando la macchina da scrivere è stata elettrificata. La chiave era etichettata come Ritorno a capo o semplicemente Ritorno. Alcuni dei primi computer come la BBC Micro usava ancora il nome |_+_| su quello che ora chiamiamo |_+_| chiave.

Annuncio pubblicitario

Di norma, non puoi vedere i caratteri di nuova riga. Puoi vedere solo il loro effetto . Il carattere di nuova riga obbliga il software che visualizza o elabora il testo a iniziare una nuova riga.

Ma qual è il problema con le lunghe file?

Il testo senza o con pochissimi caratteri di nuova riga sarà troppo largo per essere letto comodamente nella finestra del terminale. È fastidioso, ma è fattibile.



Un problema più pernicioso è avere a che fare con righe di lunghezza tale da porre un problema al software che deve elaborare, trasmettere o ricevere il testo. Ciò potrebbe essere causato dalla lunghezza del buffer interno o da altri aspetti del software che non è possibile regolare.

Ma c'è una soluzione per questo, chiamata |_+_|.

Primi passi con piega

Diamo un'occhiata a una porzione di testo che contiene righe molto, molto lunghe. Nota che non stiamo parlando di frasi qui. (Anche se il testo proviene da Moby Dick di Herman Melville, quindi abbiamo il meglio di entrambi i mondi.)

Una riga di testo è tutto, dall'ultimo carattere di nuova riga (o dall'inizio del file se è la prima riga del file) fino al successivo carattere di nuova riga, indipendentemente da ciò che c'è nel mezzo. La riga può contenere molte frasi. Potrebbe avvolgersi nella finestra del terminale molte volte. Ma è ancora un separare riga di testo.

Esaminiamo il testo nella sua forma grezza:

fold

Il testo viene visualizzato in |_+_|:

Il testo si estende da un bordo all'altro della finestra e le linee a capo sono brutte e rompono le parole nel mezzo.

Annuncio pubblicitario

Abbiamo un'altra versione del file con linee brevi:

Return

Le righe in questo file sono molto più corte. Ogni riga è terminata con un carattere di nuova riga.

Se usiamo |_+_| comando, possiamo guarda i valori dei byte all'interno del file e vedere i caratteri di nuova riga. Il |_+_| L'opzione (canonico) formatta l'output in modo che mostri i valori esadecimali nel corpo principale del display con gli equivalenti di testo in una colonna a lato. Indirizzeremo l'output in |_+_|:

Enter

Premendo la barra in avanti |_+_| entrerai nella funzione di ricerca di |_+_|. Digitare 0a e premere |_+_|. I caratteri di nuova riga verranno evidenziati nel testo. Puoi scorrere il file e vedere dove appaiono. Se necessario, puoi scorrere l'output lateralmente utilizzando |_+_| e |_+_| chiavi.

Avere un carattere di nuova riga alla fine di ogni riga può essere di per sé una limitazione. Indipendentemente dal programma o dalla finestra che visualizza questo testo, le linee non possono adattarsi a finestre con una larghezza maggiore delle linee stesse. La lunghezza della riga è stata limitata dai caratteri di nuova riga.

Quindi ci sono problemi sia con le linee lunghe che con quelle corte.

Ridurre le lunghe file

Il |_+_| il comando ha un'opzione |_+_| (larghezza) che consente di specificare una nuova larghezza massima per una sezione di testo. Mostreremo il testo di Moby Dick con una larghezza massima di 50 caratteri:

fold

Annuncio pubblicitario

Il testo viene visualizzato nella finestra del terminale, con la nuova lunghezza massima del file. Il file originale non viene modificato. È solo l'output di |_+_| che è riformattato.

A prima vista, questo sembra molto meglio. Ma le parole vengono ancora divise a metà alla fine delle righe. È decisamente più facile da leggere, ma alcune delle imbarazzanti interruzioni di parole sono stridenti.

Sebbene sembri che il margine destro del testo oscilli dentro e fuori, tutte le lunghezze delle linee sono le stesse. Le righe che sembrano essere un carattere più corte del resto finiscono con uno spazio.

Divisione di linee negli spazi

Possiamo usare il |_+_| (spazi) per assicurarsi che le righe siano divise solo su caratteri spazio e che nessuna parola sia spezzata su due righe.

less

L'output ora ha un margine destro irregolare, ma è più facile da leggere. Tutte le parole finiscono sulle righe da cui sono iniziate.

Allungare le linee corte

Oltre ad accorciare le linee lunghe, possiamo usare |_+_| per rimuovere le lunghezze di linea imposte per le linee più corte.

hexdump

Annuncio pubblicitario

I caratteri di nuova riga vengono rimossi e il testo ora va a capo o prima della lunghezza massima assegnata.

Rendere permanenti le modifiche

|_+_| non è possibile modificare il file originale. Se vuoi mantenere le modifiche, dovrai reindirizzare l'output da |_+_| in un nuovo file. Reindirizzeremo l'output in un file chiamato modificato-moby-dick.txt.

-C

Diamo un'occhiata al nostro nuovo file:

less

Come appare il nostro nuovo file?

Il testo ora si avvolge ordinatamente alla nostra nuova larghezza della linea, che è più ampia delle lunghezze della linea del file originale.

Utilizzo di fold con stream

Possiamo usare |_+_| per riformattare i flussi di testo. Non si limita a lavorare esclusivamente con i file. Vediamo qual è l'output grezzo del |_+_| lo strumento sembra. Il |_+_| (segui) mostra le voci più recenti nel |_+_| rivista e aggiornamenti man mano che arrivano nuove voci .

/

L'output si avvolge sul bordo della finestra del terminale.

Non sembra male, ma per motivi di dimostrazione, riduciamo leggermente la sua larghezza. Invieremo l'output da |_+_| in |_+_|. Stiamo impostando la larghezza massima a 65 caratteri e stiamo rompendo le linee solo sugli spazi.

less

Annuncio pubblicitario

Il display sembra un po' meno opprimente e anche un tocco più ordinato.


I muri di testo solido possono sembrare impenetrabili. Sono scoraggianti e fiacchi da affrontare. Quando hai bisogno di essere in grado di vedere il legno dagli alberi, chiama |_+_| e imporre un po' di ordine.

Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO
  • & rsaquo; Cyber ​​Monday 2021: le migliori offerte tecnologiche
  • › 5 siti Web che ogni utente Linux dovrebbe aggiungere ai segnalibri
  • › Funzioni e formule in Microsoft Excel: qual è la differenza?
  • › Come trovare il tuo Spotify Wrapped 2021
  • › La cartella del computer è 40: come la star di Xerox ha creato il desktop
  • › Che cos'è la protezione anticaduta MIL-SPEC?
Foto del profilo di Dave McKay Dave McKay
Dave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa

Articoli Interessanti