Presmerovanie vstupu a výstupu: Základný krok k majstrovstvu v shelli

V Bash shelli, stejně jako v jiných shell prostředích, patří přesměrování vstupu a výstupu mezi základní a velmi silné nástroje pro manipulaci s daty. Tyto techniky vám umožňují flexibilně zpracovávat, filtrovat a zapisovat data z příkazů do souborů nebo jiných příkazů. V tomto článku se podíváme na různé techniky přesměrování, jakož i praktické příklady, které vám pomohou efektivněji pracovat v Linuxu.

1. Rozdíl mezi > a >> při přesměrování výstupu (přepisování vs. připojení)

Práce s přesměrováním výstupu v shellu vám dává možnost zvolit si mezi dvěma základními operátory: > a >>. Oba slouží pro přesměrování výstupu příkazu do souboru, ale liší se v tom, jak zacházejí s existujícími soubory.

> - Přepisování výstupu

Operátor > slouží pro přesměrování výstupu příkazu do souboru. Pokud soubor již existuje, jeho obsah bude přepsán. Tento operátor je užitečný, když chcete vymazat obsah souboru a napsat nový výstup.

echo "Toto je nový text" > soubor.txt

Výstup tohoto příkazu bude přepsán do souboru soubor.txt.

>> - Připojení výstupu

Operátor >> slouží k připojení výstupu příkazu na konec již existujícího souboru. Tento operátor je užitečný, pokud chcete přidat nový obsah na konec souboru, aniž byste smazali ten stávající.

echo "Přidaný text" >> soubor.txt

Tento příkaz připojí nový text na konec souboru soubor.txt.

2. Vstup přes < a << (tu-dokumenty, dočasné soubory)

Přesměrování vstupu je užitečné, když chcete, aby příkaz četl data ze souboru nebo příkazu místo interaktivního zadávání. Pro tento účel se používají operátory < a <<.

< - Přesměrování vstupu ze souboru

Operátor < slouží pro přesměrování vstupu z existujícího souboru do příkazu. Tento operátor je užitečný, když chcete zpracovat obsah souboru bez jeho otevření v editoru.

sort < soubor.txt

Tento příkaz přesměruje obsah souboru soubor.txt do příkazu sort a seřadí řádky.

<< - Tu-dokumenty (víceřádkové vstupy)

Operátor << slouží k zadání víceřádkového vstupu přímo do příkazu ve skriptu. Tento příkaz se často používá ve skriptech, když chcete dočasně poskytnout vstupy příkazům bez nutnosti vytváření souborů.

cat << EOF Toto je text který bude zadán příkazu cat. EOF

Výstup bude obsahovat text mezi značkami EOF.

3. Funkce roury | pro spojování příkazů a tvorbu "řetězců"

Operátor roury | je jedním z nejsilnějších nástrojů v shellu. Umožňuje vám spojit příkazy tak, že výstup jednoho příkazu se stane vstupem dalšího. Tento mechanismus vám umožní vytvářet řetězce příkazů, které spolupracují při zpracování dat.

Příklad: Pokud chcete najít konkrétní slova v souboru a seřadit je:

cat soubory.txt | grep "text" | sort

Tento příkaz načte obsah souboru soubory.txt, použije grep na filtrování řádků obsahujících „text“ a nakonec je seřadí pomocí sort.

4. Využití 2> na přesměrování chybových výstupů (stderr)

V shellu jsou výstupy rozděleny na standardní výstup (stdout) a chybový výstup (stderr). Operátor 2> slouží pro přesměrování chybových zpráv do souboru nebo jiného příkazu.

Příklad:

ls neexistující_adresář 2> chyba.txt

Tento příkaz způsobí chybu, protože adresář neexistuje, ale chybová zpráva bude přesměrována do souboru chyba.txt.

5. Praktické příklady kombinování grep, sort, uniq a head/tail

Různé techniky přesměrování a roury jsou velmi užitečné, když je kombinujete s nástroji jako grep, sort, uniq, head a tail, které vám umožní efektivně zpracovávat a analyzovat data.

Příklad kombinace grep, sort a uniq

grep "chyba" log.txt | sort | uniq

Tento příkaz vyhledá „chyba“ v souboru log.txt, seřadí výstup a odstraní duplicity.

Příklad kombinace head a tail

cat soubory.txt | head -n 10 | tail -n 5

Tento příkaz vypíše řádky 6 až 10 z prvních 10 řádků souboru soubory.txt.

Pokud se chcete dozvědět více o efektivním využívání těchto nástrojů v shell skriptech, navštivte náš Kurz SHELL – Programování v UNIX shellu pro systémové administrátory.

Jak začít programovat?

Úvod do programování pro každého bez předchozích znalostí.

Stáhněte si náš ebook teď výjimečně zdarma!!!

Viac informacií preberáme na kurze:

Kurz SHELL - Programování v UNIX shellu pro systémové administrátory

Marián Knězek