Úvod do UNIXu – cvičení 27. 5. 2016

Poznámky na závěr

Zápočtová písemka

  1. Předpokládejte, že máte na vstupu matici celých čísel typu M × N. Řádky matice jsou na samostatných řádcích vstupu a jednotlivé sloupce jsou tam oddělovány znakem mezery nebo tabulátoru.
    Napište shellový skript, který funguje v roli filtru, jenž zpracuje matici takovým způsobem, že na výstupu bude matice typu (M + 1) × (N + 1), kde dodatečný sloupec bude obsahovat součty řádků, dodatečný řádek součty sloupců, a prvek v pravém dolním rohu pak součet všech čísel původní matice.
    Např. následující vstup:
            
    1 2
    3 4
            
          
    by měl být skriptem transformován na tento výstup:
            
    1 2 3
    3 4 7
    4 6 10
            
          
  2. Připravte shellový skript, který na příkazové řádce očekává 3 parametry: cestu k 1. adresáři, cestu k 2. adresáři a shellovou masku složenou z wildcardů. Váš skript by měl zkopírovat soubory vyhovující zadané masce z podstromu 1. adresáře do 2. adresáře s tím, že zachová jejich relativní cestu.
    Příkladem může být tedy příkaz ./skript2.sh ~/adresar1/ ../adresar2/ '*.sh', který by měl např. vykonat činnost, jenž by bylo možné znázornit následujícím ASCII diagramem:
            
    ~/adresar1/                     ../adresar2/
    |                               |
    |____a/                         |
    | |____film.avi                 |
    |                     =>        |
    |____b/                         |____b/
    | |____hudba.mp3                  |
    | |____nikita.sh                  |____nikita.sh
    |
    |____c/
            
          
  3. Napište shellový skript, který vypíše 10 nejdelších řádků souboru, jenž je skriptu zadán parametrem na příkazové řádce. Při vypisování jednotlivých řádek by měl skript zachovat jejich původní pořadí vůči sobě.