Ondrej Sika

Programovani v shellu 1 (BIK-PS1) (2014)

grep, sed, awk / Programovani v shellu 1 (BIK-PA1) (2014) / FIT CVUT

grep, sed a awk se daji pouzit jako prikazy i jako filtry.

grep '[0-9]G' data.txt

je stejne jako

cat data.txt | grep '[0-9]G'

grep

Vytiskne pouze radky odpovidajici vyrazu

grep [prepinace] 'vzor' [soubory]

Prepinace:

egrep

Ekvivalent k grep -E

egrep '^no(fork|group)' /etc/group

misto

grep '^no\(fork\|group\)' /etc/group

fgrep

Ekvivalent k grep -F

vzor neni regularni vyraz ale obycejny retezec. Je rychlejsi nez grep.

sed

S prazdnym prikazem funguje jako cat. sed '' file.txt je stejne jako cat file.txt.

sed [prepinace] 'prikaz' [soubory]

Prepinace:

Prikazy:

awk

Programovatelny filtr vytvoreny: __A__ho. __W__einberg, __K__ernigham

Podle vzoru se vyberou radky a provedou se s nimi urcite operace.

Radku prohlizi jako posloupnost $1, $2, …, $n oddelenou mezarami (oddelovacem). $0 je celi radek.

Prepinace:

Vzory:

Typy vyrazu:

Logicke vyrazi:

Preddefinovane promenne:

Podminka if a cykly jako v C. dale for i in range

Preddefinovane funkce:

Priklady

datovy soubor data:

Steve      Jobs       Apple      30
Bill       Gates      Microsoft  35
Mark       Zuckerberg Facebook   25
Peter      Thiel      Paypal     40
Elon       Musk       Tesla      8

Soucet majetku

awk '{c = c + $4}END {print c;}' data
138

Prumer

awk '{c = c + $4}END {print c/NR;}' data
27.6