Како користити команду фолд на Линук-у

Linux komanda `fold` omogućava vam da kontrolišete prikaz teksta, čak i kada su u pitanju dugački redovi, beskrajni nizovi znakova i neformatirani podaci. Naučite kako da je koristite za bolju čitljivost i upravljanje izlazom.

Razumevanje redova teksta u Linux terminalu

Pre nego što krenemo dalje, hajde da definišemo šta je tačno red teksta. Red teksta je niz karaktera – slova, brojeva, simbola i razmaka – koji se završava posebnim bajtom koji signalizira „novi red“. U Linux i Unix sistemima, znak za novi red, poznat i kao linefeed, koristi se kao indikator kraja reda. To je bajt sa heksadecimalnom vrednošću 0x0a, što odgovara decimalnoj vrednosti 10.

Različiti operativni sistemi koriste različite bajt vrednosti za označavanje kraja reda. Windows, na primer, koristi sekvencu od dva bajta. U Windows tekstualnim datotekama, znak za novi red prati znak za povratak kočije, koji ima heksadecimalnu vrednost 0x0d i decimalnu 13.

Termini „linefeed“ i „carriage return“ potiču iz vremena pisaćih mašina. Ploča, cilindar oko kojeg se obmotavao papir, bila je montirana na pokretnoj kočiji. Kočija bi se pomerala za širinu jednog karaktera ulevo svaki put kada bi se pritisnuo taster. Da bi se započeo novi red, poluga bi se povukla da bi se kočija vratila u početni položaj, a valjak bi se okrenuo i pomerio papir nagore za jednu liniju. Ovo vraćanje kočije i okretanje cilindra (i pomeranje papira) nazivalo se pomeranje linije.

Kada su pisaće mašine elektrifikovane, polugu je zamenio taster sa oznakom „Carriage Return“ ili samo „Return“. Neki raniji računari, poput BBC Micro, još uvek su koristili naziv „Return“ za ono što danas zovemo „Enter“.

U suštini, znakove za novi red ne možete videti direktno. Vidljiv je samo njihov efekat – softver koji prikazuje ili obrađuje tekst mora započeti novi red kada naiđe na ovaj znak.

Problem sa dugačkim redovima

Tekst bez znakova za novi red ili sa vrlo malo njih, može biti preširok za udobno čitanje u terminalu. Ovo je nepraktično, ali podnošljivo.

Međutim, mnogo ozbiljniji problem nastaje kada softver koji treba da obrađuje, prenosi ili prima tekst nailazi na toliko duge redove da to izaziva probleme. To može biti posledica ograničenja unutrašnje veličine bafera ili drugih softverskih faktora koje ne možete da promenite.

Srećom, postoji rešenje, a to je komanda `fold`.

Početak rada sa `fold` komandom

Pogledajmo primer teksta koji ima veoma dugačke redove. Važno je napomenuti da ovde ne govorimo o rečenicama. Iako tekst potiče iz romana „Mobi Dik“ Hermana Melvila, imamo najbolje iz oba sveta.

Red teksta je sve, od poslednjeg znaka za novi red (ili početka datoteke ako je to prvi red), do sledećeg znaka za novi red, bez obzira na to šta se nalazi između. Jedan red može sadržati više rečenica i može se više puta prelamati u prozoru terminala. Ali, i dalje se smatra jednim redom teksta.

Pogledajmo tekst u njegovom sirovom obliku:

less moby-dick.txt

Tekst se prikazuje pomoću komande `less`:

Tekst se proteže od jedne do druge ivice prozora, a redovi izgledaju neuredno i presecaju reči na sredini.

Sada ćemo pogledati drugu verziju datoteke, koja ima kraće redove:

less short-lines-moby-dick.txt

Redovi u ovoj datoteci su mnogo kraći i svaki se završava znakom za novi red.

Ako upotrebimo komandu `hexdump`, možemo pogledati vrednosti bajtova unutar datoteke i uočiti znakove za novi red. Opcija `-C` (kanonska) formatira izlaz tako da prikaže heksadecimalne vrednosti u glavnom delu.