1. Báza znalostí
  2. Cloud a servery
  3. Nástroje
  4. GNU Coreutils – výpis obsahu súborov

GNU Coreutils – výpis obsahu súborov

Rekurzívna skratka GNU (GNU’s Not Unix = GNU nie je Unix) označuje projekt, ktorý v roku 1983 založil americký programátor Richard Matthew Stallman (RMS). Za cieľ si dal vytvorenie slobodného operačného systému s otvoreným zdrojovým kódom, ktorý by vychádzal z filozofie uzavretého operačného systému Unix.

Približne o 10 rokov bol skompletizovaný Unix-Like slobodný operačný systém pod názvom GNU/Linux, ktorý sa postupne stal zlatým štandardom vo svete serverov. V rôznych obmenách je nasadzovaný aj v nositeľnej elektronike, mobiloch, tabletoch, televízoroch, notebookoch, stolových počítačoch, autách, či dokonca vo vesmíre.

Tip: Všetky príkazy si jednoducho otestujte s WebSupport VPS. Vyskúšajte prémiový virtuálny server zdarma ešte dnes.

Základné programy časti GNU tvoria desiatky malých aplikácií, ktoré robia jeden jednoduchý úkon (napr. vypíšu zoznam súborov alebo obsah súboru). Zároveň sú schopné medzi sebou spolupracovať, keďže výstup jedného programu môže byť použitý ako vstup iného (napr. nižšie vysvetlené head -n 10 nazov_suboru.txt | nl -b a).

Postupne si predstavíme základné programy projektu GNU (balík Coreutils). Budeme pracovať so súbormi a s bežnými nastaveniami operačného systému GNU/Linux, ktoré sú uložené v súboroch. Pretože v operačnom systéme GNU/Linux je všetko o súboroch.

cat

Jeden z najznámejších nástrojov balíka GNU Coreutils je cat. Ide o jednoduchý výpis obsahu obyčajného textového súboru:

cat nazov_suboru.txt

Jednoduchý výpis je možné rozšíriť vďaka nastaveniam. Napríklad všetky neprázdne riadky sa očíslujú takto:

cat -b nazov_suboru.txt

Ak do číslovania potrebujeme zahrnúť aj prázdne riadky, použijeme iný prepínač:

cat -n nazov_suboru.txt

Užitočný je tiež prepínač -s, vďaka ktorému viacero po sebe nasledujúcich prázdnych riadkov zredukujeme na jeden prázdny riadok:

cat -s nazov_suboru.txt

Niekedy môže zase byť prospešné zobraziť konce riadkov ako znak dolára ($):

cat -e nazov_suboru.txt

Všetky vyššie spomínané prepínače môžeme kombinovať, aby sme pri výpise súborov dosiahli požadovaný efekt.

tac

Názov nástroja tac je opačne napísaný názov vyššie spomínaného nástroja cat. Nástroj tac teda vypíše obsah súboru, ale opačne. To znamená, že posledný riadok bude prvý, čo sa hodí napríklad pri súboroch záznamov (log):

tac nazov_suboru.txt

nl

V prípade, že potrebujeme číslovanie riadkov nastaviť podrobnejšie, použijeme nástroj nl. Vďaka nemu je možné pridať pred čísla nuly (prvý riadok) alebo pridať medzi číslo a začiatok riadku ľubovoľné znaky (druhý riadok):

nl -n rz nazov_suboru.txt
nl -s ... nazov_suboru.txt

Tiež môžeme upraviť, do ktorého čísla sa začne číslovanie (prvý riadok), či o koľko sa zväčší ďalšie číslo (druhý riadok):

nl -v 2 nazov_suboru.txt
nl -i 2 nazov_suboru.txt

Podobne ako nástroj cat, aj nl umožňuje číslovať všetky riadky (prvý riadok) alebo iba neprázdne riadky (druhý riadok):

nl -b a nazov_suboru.txt
nl -b t nazov_suboru.txt

Ak je riadkov v súbore príliš veľa, stačí zvýšiť prednastavených 6 číslic na povedzme 10 (alebo ľubovoľný počet znakov):

nl -w 10 nazov_suboru.txt

od, base32 a base64

Obsah súboru nástroj od zobrazí v osmičkovej (prvý riadok), desiatkovej (druhý riadok) alebo šestnáckovej (tretí riadok) sústave:

od -A o nazov_suboru.txt
od -A d nazov_suboru.txt
od -A x nazov_suboru.txt

Nástroje base32 a base64 proste kódujú obsah súboru v týchto formátoch:

base32 nazov_suboru.txt
base64 nazov_suboru.txt

head a tail

Priamočiary príkaz head slúži na zobrazenie prvých riadkov. Takto napríklad zobrazíme prvých 10 riadkov:

head -n 10 nazov_suboru.txt

Nástroj head nedokáže číslovať riadky, no s pomocou nástroja nl číslovanie ľahko pridáme. Cez potrubie (pipe) pošleme výstup z head do vstupu nl. Takto teda programy z balíka Coreutils dokážu spolupracovať:

head -n 10 nazov_suboru.txt | nl -b a

Naopak, posledných 10 riadkov zobrazíme nástrojom tail takto:

tail -n 10 nazov_suboru.txt

Program tail sa často používa na nepretržité sledovanie súborov so záznamom (log). Pretože do týchto súborov pribúda obsah na koniec súboru pravidelne a rýchlo, je dobré sledovať aktuálny stav automaticky:

tail -n 10 -f nazov_suboru.txt

split

Nástroj split dokáže rozdeliť súbor na viacero menších súborov. Povedzme, že súbor obsahuje tisíce dlhých riadkov a jeho veľkosť znemožňuje poslať ho e-mailom ako prílohu. Súbor teda rozdelíme na viac malých, z ktorých každý bude obsahovať najviac 1000 riadkov:

split -l 1000 nazov_suboru.txt

Bolo vytvorených množstvo súborov, pričom každý začína malým písmenom x. Ďalej v názve nasledujú ostatné písmená podľa abecedy, aby bolo možné súbory usporiadať tak, ako ide obsah veľkého súboru.

Užitočné môže byť aj pridať koncovku súborov za názov každého súboru:

split -l 1000 --additional-suffix=.txt nazov_suboru.txt

Takto môžeme menšie súbory priložiť do prílohy e-mailu, pretože už neprekračujú limit maximálnej veľkosti jedného súboru.

Zhrnutie

V tejto časti seriálu o GNU Coreutils sme predstavili nástroje, vďaka ktorým môžeme zobraziť obsah textového súboru. Ukázali sme si nasadenie jednoduchých nástrojov, a tiež sme demonštrovali možnú spoluprácu medzi nimi.

Aktualizované 14. júna 2022

Bol pre vás tento návod nápomocný?

Mohlo by vás tiež zaujímať:

Spýtajte sa nás, radi poradíme
Po - Ne 8:00-22:00
Kontaktovať podporu