Cvičení z Úvodu do UNIXu – zápočtovka


Pravidla

1. Tree

Napište zjednodušenou variantu příkazu tree. Vypište do terminálu (graficky) stromovou strukturu aktuálního adresáře. (V případě volání bez argumentu.)

Případně vypíše stromovou strukturu adresáře zadaného jako argument

/etc
├── alternatives
│   ├── aclocal
│   └── x-www-browser
├── apache2
│   ├── apache2.conf
│   └── conf-available
│       ├── charset.conf
│       ├── javascript-common.conf
│       ├── localized-error-pages.conf
│       ├── other-vhosts-access-log.conf
│       ├── security.conf
│       └── serve-cgi-bin.conf
├── group
└── passwd

Můžete se klidně omezit na znaky, které se dají snadno napsat na klávesnici:

/etc
+── alternatives
│   +── aclocal
│   \── x-www-browser
+── apache2
│   +── apache2.conf
│   \── conf-available
│       +── charset.conf
│       +── javascript-common.conf
│       +── localized-error-pages.conf
│       +── other-vhosts-access-log.conf
│       +── security.conf
│       \── serve-cgi-bin.conf
+── group
\── passwd

Samozřejmě nesmíte použít příkaz tree, nebo něco podobného...

Aktualizace:

V ideálním případě byste měli zvládat kreslit svislé čáry podle toho, zda adresář ještě něco dalšího obsahuje:

.
├── druhy
│   ├── druhy
│   │   ├── druhy
│   │   └── prvni
│   └── prvni
│       ├── druhy
│       └── prvni
└── prvni
    ├── druhy
    │   ├── druhy
    │   └── prvni
    └── prvni
        ├── druhy
        └── prvni

2. Life

Napište skript, který načte ze souboru konfiguraci buněk pro Game of Life (viz Wikipedia: anglicky/česky), provede N iterací a vypíše stav po poslední iteraci. N je parametr skriptu, formát vstupu si zvolte podle sebe.

3. Matice

Napište skript, který setřídí všechny sloupce v matici od největšího k nejmenšímu. S přepínačem -r bude třídit obráceně.

Vstup:

6 9 4
2 5 2
3 1 2

Výstup:

2 1 2
3 5 2
6 9 4

Ve verzi na doma musí skript správně ošetřovat případy, kdy není vstup validní

4. Rotace

Zrotujte slova na řádku doleva o tolik, kolik je číslo řádku.

Vstup čtěte ze standardního vstupu, naopak výstup vypisujte na standardní výstup.

Příklad vstupu:

a b c d e
ahoj jak se mas
1 2 3 4 5
Krkolomnost je prekrasna vec

Příklad výstupu:

b c d e a
se mas ahoj jak
4 5 1 2 3
Krkolomnost je prekrasna vec

Pozor, řádek může obsahovat i méně slov, než je jeho číslo.

Příklad vstupu:

a b c
a b c
a b c
a b c
a b c
a b c

Příklad výstupu:

b c a
c a b
a b c
b c a
c a b
a b c