Úvod do UNIXu 2016/2017

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

Cvičení VII

Boss: (?![0-57-9])\d[^\D0-8]\?
Employee: (slaps boss)

  1. Úkol z minulé hodiny
  2. Vypište ze souboru jen řádky obsahující dvou- a víceciferná čísla
    • cat soubor | grep -E [1-9][0-9]
  3. Nalezněte výskyty slov free, freed ne však freedom
    • grep -Eo "free(d|\s|$)?"
    • ls -l | sed '/^l/LINK->\'
  4. Vypište loginy ze souboru /etc/passwd do deseti řádků, na každém řádku jsou loginy oddělené mezerami, to je
    login1 login11 ...
    login2 login12 ...
    login3 login13 ...
    ...
    • split -l10 /etc/passwd passwd paste -d " " passwd*
  5. Použijte countrycodes_en.csv a kodyzemi_cz.csv. Spojte je ve formátu českýnázev=anglickýnázev
    • tr -d '"' < kodyzemi_cz.csv | tail -n +2 | sort -t \; -k1,1 > /tmp/kody_s
      tr -d '"' < countrycodes_en.csv | tail -n +2 | sort -t \; -k4,4 > /tmp/codes_s
      join -t\; -1 1 -2 4 -o 1.4,2.1 /tmp/kody_s /tmp/codes_s | tr \; = > preklad
      rm /tmp/kody_s /tmp/codes_s

    Dnešní témata

    Úkol 7 (2 body):
    Vytvořte pomocí sedu (no AWK) skript, který funguje jako grep, ale tak, že pokud nalezne vzor na řádce, vypíše nejen tuto řádku, ale i obě okolní. Pokud se vzor objeví na více řádkách po sobě, vypíše každou zlvášť, nemusíte to tedy řešit speciálně.

      • cat <(echo) $file <(echo) | sed -n -e '/'$pattern'/{x;1!p;g;$!N;p;D;};h' $file