Úvod do UNIXu – cvičení 15. 4. 2016

Domácí úkoly

  1. Vymyslete základní nebo rozšířený regulární výraz pro nástroj grep, který popisuje obecně validní adresu protokolu IPv4. Poté napište pomocí něj příkaz, který ze souboru s IPv4 adresami vypíše pouze validní adresy. (1 bod)
  2. Úplně ideální bude, pokud se váš regulární výraz navíc popasuje i s adresou "192.168.07.200", kterou nepovažuji kvůli 3. bajtu za validní. Správný výstup tak bude mít 5, resp. 4 řádky. (+ 1 bod)

Řešení domácích úkolů z minula

  1. Napište shellový skript, který vypíše čárkami oddělený výčet názvů skupin, které jsou uvedeny v souboru /etc/group, ale zároveň nejsou primární skupinou žádného z uživatelů systému. Pozor, opět smíte použít pouze nástroje z již proběhlých cvičení. Snažte se také použít pouze prostředky garantované standardem POSIX. (1 bod)
            
    #!/bin/bash
    
    # 1. varianta, přirozeně pomocí nástroje comm
    
    sort -t : -k 4b /etc/passwd > /tmp/passwd
    sort -t : -k 3b /etc/group > /tmp/group
    
    join -t : -1 4 -2 3 -o 2.1 /tmp/passwd /tmp/group | sort -u > /tmp/pouzite
    cut -d : -f 1 /etc/group | sort > /tmp/vsechny
    
    comm -13 /tmp/pouzite /tmp/vsechny | paste -s -d ','
    
    rm -f /tmp/passwd /tmp/group /tmp/pouzite /tmp/vsechny
            
          
            
    #!/bin/bash
    
    # 2. varianta, s využitím pokročilých možností příkazu join
    
    sort -t : -k 4b /etc/passwd > /tmp/passwd
    sort -t : -k 3b /etc/group > /tmp/group
    
    join -t : -1 3 -2 4 /tmp/group /tmp/passwd -o 1.1 -v 1 | sort | paste -s -d ','
            
          

Příkazy a úkoly na cvičení