Cum să utilizați comanda fold pe Linux

Comanda Linux fold aduce rezultate indisciplinate la călcâi. Citiți bucăți largi de text, șiruri nesfârșite și fluxuri neformatate controlând lățimea rezultatului. Afla cum.

Cum funcționează liniile de text în terminalul Linux

Prima regulă a luptei Linux: cunoaște-ți inamicul. Deci haideți să o definim. Ce este mai exact o linie de text? Este o secvență de caractere — litere, numere, simboluri și spații albe — care se încheie cu un octet special care înseamnă „începeți o nouă linie”. În Linux și Unix, caracterul noua linie, numit și avans de linie, este folosit ca indicator de sfârșit de linie. Acesta este un octet cu o valoare de 0x0a in hexazecimal și zece în zecimală.

Diferite sisteme de operare folosesc valori diferite de octeți pentru a indica sfârșitul unei linii. Windows folosește o secvență de doi octeți. În fișierele text Windows, caracterul newline este urmat imediat de caracter de întoarcere a căruciorului, care este 0x0d în hexazecimal și treisprezece în zecimală.

Termenii „linefeed” și „carriage return” datează din trecut la mașina de scris. Platoul, cilindrul în care era înfășurată hârtia, a fost montat pe un cărucior mobil. Căruciorul a mutat lățimea unui caracter la stânga de fiecare dată când apăsați o tastă. Pentru a începe o nouă linie, ați împins o pârghie care a adus căruciorul înapoi în poziția inițială și care a rotit rola și a mutat hârtia în sus cu înălțimea unei linii. Această acțiune a fost cunoscută sub denumirea de întoarcere a căruciorului, iar rotația cilindrului (și înaintarea hârtiei) era cunoscută sub numele de avans de linie.

  Cum se configurează Viber pe Linux

Pârghia a fost înlocuită cu o cheie când mașina de scris s-a electrificat. Cheia a fost eticheta Retur transport sau doar Retur. Unele computere timpurii, cum ar fi BBC Micro a folosit în continuare numele Return pe ceea ce numim acum tasta Enter.

Nu puteți vedea caractere newline, de regulă. Puteți vedea doar efectul lor. Caracterul newline forțează software-ul care afișează sau procesează text să înceapă o nouă linie.

Dar care este problema cu liniile lungi?

Textul care nu conține, sau foarte puține, caractere de nouă linie va fi prea larg pentru a fi citit confortabil în fereastra terminalului. Este enervant, dar este posibil.

O problemă mai pernicioasă este nevoia de a face față liniilor de așa lungime încât acestea reprezintă o problemă pentru software-ul care trebuie să proceseze, să transmită sau să primească textul. Acest lucru poate fi cauzat de lungimile buffer-ului intern sau de alte aspecte ale software-ului pe care nu le puteți ajusta.

Dar există o soluție pentru asta, numită fold.

Primii pași cu fold

Să aruncăm o privire la o porțiune de text care are rânduri foarte, foarte lungi în ea. Rețineți că aici nu vorbim despre propoziții. (Deși textul provine din Moby Dick al lui Herman Melville, deci avem ce este mai bun din ambele lumi.)

O linie de text este totul de la ultimul caracter de linie nouă (sau începutul fișierului dacă este prima linie din fișier) până la următorul caracter de linie nouă, indiferent de ce se află între ele. Rândul poate conține multe propoziții. Se poate înfășura în fereastra terminalului de multe ori. Dar este încă o singură linie de text.

  Cum să faci un tunel SSH pe Linux

Să ne uităm la textul în forma sa brută:

less moby-dick.txt

Textul este afișat în mai puțin:

Textul se întinde de la o margine la alta a ferestrei, iar liniile sunt urâte și rup cuvintele în mijloc.

Avem o altă versiune a fișierului cu linii scurte:

less short-lines-moby-dick.txt

Rândurile din acest fișier sunt mult mai scurte. Fiecare linie se termină cu un caracter newline.

Dacă folosim comanda hexdump, putem uitați-vă la valorile octeților din fișier și vedeți caracterele newline. Opțiunea -C (canonică) formatează rezultatul pentru a afișa valorile hexazecimale în principal