Úvod do UNIXu 2016/2017

0  1  2  3  4  5  6  7  8  9  10  11  12 

Cvičení XII

  1. Úkol z minulé hodiny
  2. Napište skript rmexcept, který očekává n+1 parametrů, kde první parametr je adresář a další parametry jsou řetězce popisující názvy souborů (může jít o shellové masky) v tomto adresáři. Skript v zadaném adresáři vymaže všechny soubory, jejichž názvy nevyhovují maskám zadaným v parametrech. Soubory, které vyhovují zadaným maskám a názvům, skript nechá beze změny, přičemž se jich ani netkne (tedy speciálně nebude je přesouvat mimo a pak zpět). Například volání rmexcept . '*.jpg' '*.png' by v aktuálním adresáři vymazalo všechny soubory, které nemají příponu jpg ani png.
  3. Napište skript, který vypíše ze std vstupu řádky, jež jsou palindromy.
  4. Napište awk skript, který v textu zakomentuje všechny odstavce, které začínají komentářovým řádkem. (To jest, před druhou a další řádky tohoto odstavce předřadí komentářový znak.) Znak uvozující komentář je '#'. Odstavce se oddělují prázdným řádkem.
  5. Vytvořte kalkulačku v bashi, která vyhodnocuje postfixové výrazy a umí pracovat s proměnnými.
  6. Napište skript cutreorder, který se bude chovat podobně jako cut, bude mít parametry -d a -f, které budou mít týž formát a význam jako u cut, v dalších parametrech budou názvy souborů (pokud nebudou uvedeny, čte se standardní vstup). Rozdíl je v tom, že skript cutreorder na výstupu umístí sloupce v pořadí daném parametrem -f (v cut jsou sloupce vypisované v pořadí, v jakém jsou ve vstupním souboru). Například
    cutreorder -d : -f 3,1 /etc/passwd by vypsalo z /etc/passwd do dvou sloupců uid:login. cutreorder -d : -f 3,3-5,1 /etc/passwd by vypsalo sloupce uid:uid::gid:full name:login.
  7. Napište awk skript, který vypíše posledních 10 řádků souboru.
  8. Napište skript, který ze souborů jejichž názvy jsou zadané v parametrech, vybere n nejdelších řádek, u každé řádky je uvedeno pořadí ve vstupním souboru (ve formátu číslo řádky: řádka), řádky jsou na výstupu uspořádány podle pořadí ve vstupním souboru (tj. podle toho čísla před dvojtečkou na výstupu). Parametr n je implicitně 5, nebo může být zadán jako první jeden až dva parametry pomocí -n10, nebo -n 10 (to je pro příklad n=10, tj. syntaxe je stejná jako třeba u head). Pokud chybí parametry s názvy souborů, čte se standardní vstup. Pokud jsou zadány alespoň dva soubory, pak je výpis nejdelších řádek z každého souboru uvozen názvem souboru
  9. Napište skript, který ze souborů jejichž názvy jsou zadané v parametrech, vybere n nejdelších řádek, u každé řádky je uvedeno pořadí ve vstupním souboru (ve formátu číslo řádky: řádka), řádky jsou na výstupu uspořádány podle pořadí ve vstupním souboru (tj. podle toho čísla před dvojtečkou na výstupu). Parametr n je implicitně 5, nebo může být zadán jako první jeden až dva parametry pomocí -n10, nebo -n 10 (to je pro příklad n=10, tj. syntaxe je stejná jako třeba u head). Pokud chybí parametry s názvy souborů, čte se standardní vstup. Pokud jsou zadány alespoň dva soubory, pak je výpis nejdelších řádek z každého souboru uvozen názvem souboru

Dnešní témata