Sedmé cvičení – Dodělání podmínek, find, xargs, regexy, základ sedu
Příkazy a plán:
- Příkaz
test
= a != pro řetězce
-eq -ne -gt -gt -lt -le pro čísla
-e -d -f pro soubory
- Negace
!, and -a a or -o (plus závorky)
- Podmínka
if a cyklus while
- Hledání pomocí
find a jeho přepínače:
-name '*.txt'
-size [+-]...
- …
xargs
- Regulární výrazy a
grep
Příklady:
- Vypište všechny soubory a složky v aktuálním adresáři a jeho podadresářích
- Najděte v aktuálním adresáři (a podadresářích) všechny soubory s příponou
.sh
- Pokročilejší filtrování:
- Vypište všechny složky pod
/etc, které mají alespoň trojpísmenný název
- Vypište všechny symbolické linky v
/etc bez sestupování do podsložek
- V adresáři
/etc najděte soubory, které jsou novější než /etc/passwd
- Vypište všechny normální soubory v
/etc, které nevlastí root
- Spočítejte velikost všech souborů v
/etc s příponou .sh
- Vypište všechny normální soubory v
/etc, které nevlastí root a pro každý z nich vypiště dlouhé informace pomocí ls -l
- Ze souboru
aircrafts.csv z minulých cvik vyverte řádky s nehodami letadel Airbus
- ... řádky s nehodami letadel Airbus nebo Boeing (zkuste více způsobů)
- Najděte všechny síťové uživatele (v labu pomocí
getent passwd), kteří mají křestní jméno stejné, jako to vaše
- Vypište ze souboru
/etc/apache2/httpd.conf všechny řádky, které nejsou zakomentované
- Najděte všechny normální soubory v podstromě pod
/etc, jejich název má 4-7 znaků a začíná na "a"
- Zkuste si příkaz
sed
- Napište skript, který očekává řádky ve tvaru
a+b=c (bez mezer) a zkontroluje, že jsou správně (spočítá a + b a otestuje s c).
Pokud objeví chybu, vypíše číslo řádky, na které k ní došlo.
*/?>
Příklady pro pokročilé:
- Napište skript na počítání největšího společného dělitele
$1 a $2 Euklidovým algoritmem
- Napište třídící skript – dostane jako argumenty libovolný počet čísel a na výstup je vypíše v utříděném pořadí (nápověda: šikovně použijte
sort)