Linuxový příkaz fold přináší neposlušný výstup na paty. Čtěte široké kusy textu, nekonečné řetězce a neformátované proudy ovládáním šířky výstupu. Zjistěte jak.
Table of Contents
Jak fungují řádky textu v linuxovém terminálu
První pravidlo linuxového boje: Poznej svého nepřítele. Pojďme si to tedy definovat. Co je to vlastně řádek textu? Je to posloupnost znaků – písmen, číslic, symbolů a mezer – která je ukončena speciálním bytem, který znamená „začít nový řádek“. V Linuxu a Unixu znak nového řádku, nazývaný také posun řádku, se používá jako indikátor konce řádku. Toto je bajt s hodnotou 0x0a in hexadecimální a deset v desítkové soustavě.
Různé operační systémy používají k označení konce řádku různé hodnoty bajtů. Windows používá dvoubajtovou sekvenci. V textových souborech Windows je znak nového řádku bezprostředně následován znakem znak návratu vozíku, což je 0x0d v šestnáctkové soustavě a třináct v desítkové soustavě.
Termíny „linefeed“ a „carriage return“ pocházejí z minulosti k psacímu stroji. deska, válec, kolem kterého byl papír omotaný, byl namontován na pohyblivém vozíku. Po každém stisknutí klávesy se vozík posunul o jeden znak doleva. Chcete-li spustit nový řádek, stlačili jste páčku, která vrátila vozík zpět do původní polohy a která otočila válečkem a posunula papír nahoru o výšku jednoho řádku. Tato akce byla známá jako návrat vozíku a rotace válce (a posun papíru) byla známá jako posun řádku.
Páka byla nahrazena klíčem, když se psací stroj zelektrizoval. Klíč byl označen Carriage Return nebo jen Return. Některé rané počítače jako např BBC Micro stále používal název Return na to, co nyní nazýváme klávesou Enter.
Zpravidla nevidíte znaky nového řádku. Můžete vidět pouze jejich účinek. Znak nového řádku nutí software, který zobrazuje nebo zpracovává text, aby začal nový řádek.
Ale jaký je problém s dlouhými frontami?
Text, který neobsahuje žádné nebo jen velmi málo znaků nového řádku, bude příliš široký, aby se dal pohodlně přečíst v okně terminálu. Je to nepříjemné, ale je to možné.
Zhoubnějším problémem je vypořádat se s řádky takové délky, že představují problém pro software, který potřebuje zpracovat, přenést nebo přijmout text. To může být způsobeno délkou vnitřní vyrovnávací paměti nebo jinými aspekty softwaru, které nemůžete upravit.
Ale na to existuje oprava, která se nazývá fold.
První kroky s fold
Podívejme se na část textu, která obsahuje velmi, velmi dlouhé řádky. Všimněte si, že zde nemluvíme o větách. (I když text pochází z Moby Dicka od Hermana Melvilla, takže máme to nejlepší z obou světů.)
Řádek textu je vše od posledního znaku nového řádku (nebo začátku souboru, pokud je to první řádek v souboru) až po další znak nového řádku, bez ohledu na to, co je mezi tím. Řádek může obsahovat mnoho vět. V okně terminálu se může mnohokrát zabalit. Ale stále je to jeden řádek textu.
Podívejme se na text v jeho surové podobě:
less moby-dick.txt
Text se zobrazí méně:
Text se táhne od jednoho okraje okna k druhému a řádky jsou ošklivé a uprostřed lámou slova.
Máme další verzi souboru s krátkými řádky:
less short-lines-moby-dick.txt
Řádky v tomto souboru jsou mnohem kratší. Každý řádek je ukončen znakem nového řádku.
Pokud použijeme příkaz hexdump, můžeme podívejte se na hodnoty bajtů v souboru a podívejte se na znaky nového řádku. Volba -C (canonical) formátuje výstup tak, aby zobrazoval hexadecimální hodnoty v main