awk programovatelný filtr



Podobné dokumenty
A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

Algoritmizace a programování

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Regulární výrazy. Filtry grep, sed a awk.

5. Ř etězce (třída String)

Program grep. predn_05.doc

Algoritmizace a programování

Úvod do Operačních Systémů

Semestrální práce z předmětu m6f. 2 test dobré shody

Standardní vstupy a výstupy procesu filtry

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Základní stavební prvky algoritmu

AWK. Programovací jazyk textových manipulací

21. Číslicový měřicí systém se sběrnicí IEEE 488 (základní seznámení)

CZ.1.07/1.1.14/ Inovace výuky v Písku a okolí Pracovní list. Automatizační cvičení. Elektropneumatická ruka _LD

Tvorba výrazu: speciální znaky shellu se uvádějí do apostrofů jednotlivé části výrazu se oddělují mezerou

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Žáci mají k dispozici pracovní list. Formou kolektivní diskuze a výkladu si osvojí grafickou minimalizaci zápisu logické funkce

Návrh a tvorba WWW stránek 1/38 PHP

BASH. Kouzla s příkazovou řádkou. Petr Koloros

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName

1-LC: Měření elektrických vlastností výkonových diod

10 je 0,1; nebo taky, že 256

Basic256 - úvod do programování Příklady. ing. petr polách

Směrované a přepínané sítě Border Gateway Protocol (BGP)

6. Příklady aplikací Start/stop Pulzní start/stop. Příručka projektanta VLT AQUA Drive

8. Posloupnosti, vektory a matice

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

LISP Definice funkcí

ČVUT FIT: BI-SKJ: Perl

Používání klávesnice. Zobrazit vše. V tomto článku

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

EMC2399. Programové vybavení pro řízení, sběr a zpracování dat pro EMC měření spektrálním analyzátorem Aeroflex řady 2399

Jaroslav Rzepka MERCOS - Boleslavova 4, Ostrava 9, Czech Republic

Maturitní témata z předmětu Programování a databázové systémy. pro šk. rok 2012/2013

Úvod Petr Kropík viz:

Android Elizabeth. Verze: 1.3

MySQL manuál. Copyright: Adam Jun Stránky manuálu:

Jazyk C++ I. Šablony 3

TENZOMETRICKÝ KOMPARÁTOR

ANA 954. ANEMO - výroba - prodej - servis meteorologických přístrojů

Inovace bakalářského studijního oboru Aplikovaná chemie CZ.1.07/2.2.00/

1. Pojmy a definice. 2. Naivní algoritmus. 3. Boyer Moore

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

EEG Application for Emotiv

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Uživatelský manuál pro práci se stránkami OMS a MS provozované portálem Myslivost.cz. Verze 1.0

Databáze Caché CSP Custom Tags

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Daniel Velek Optimalizace 2003/2004 IS1 KI/0033 LS PRAKTICKÝ PŘÍKLAD NA MINIMALIZACI NÁKLADŮ PŘI VÝROBĚ

C2110 Operační systém UNIX a základy programování

Odkaz:

Přidávání animací do programů

Regulovaný vysokonapěťový zdroj 0 až 30 kv

NERO SUCHOBĚŽNÉ LAMELOVÉ KOMPRESORY VAKUUM BOHEMIA 97/23/EC

CEFIF Založení a změna s. r. o. Obchodní rejstřík I

Obvody s programovatelným řídicím relé

MATLAB základy. Roman Stanec PEF MZLU

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

VYUŽITÍ NEURONOVÝCH SÍTÍ PROSTŘEDÍ MATLAB K PREDIKCI HODNOT NÁKLADŮ PRO ELEKTRICKÉ OBLOUKOVÉ PECE

Analýzy v GIS. Co se nachází na tomto místě? Kde se nachází toto? Kolik tam toho je? Co se změnilo od? Co je příčinou? Co když?

ALLEX FX Programovatelný logický automat. Katalogový list. říjen Programovatelné logické automaty

Proměnné a parametry. predn_08.odt :00:38 1

Programovani v Maplu Procedura

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

TIP: Pro vložení konce stránky můžete použít klávesovou zkratku CTRL + Enter.

Cvičení 3 z předmětu CAD I PARAMETRICKÉ 3D MODELOVÁNÍ

Vytvoření nebo odstranění makra Excel

Obsah. Podrobná uživatelská příručka

materiál č. šablony/č. sady/č. materiálu: Autor: Karel Dvořák Vzdělávací oblast předmět: Informatika Ročník, cílová skupina: 8.

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Tekla Structures Multi-user Mode

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Zvyšování kvality výuky technických oborů

Objektově orientované databáze

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Cyklus while, do-while, dělitelnost, Euklidův algoritmus

Exponenciála matice a její užití. fundamentálních matic. Užití mocninných řad pro rovnice druhého řádu


Návod k použití aplikace jízdního řádu v mobilním telefonu. Stažení

Vláda nařizuje podle 133b odst. 2 zákona č. 65/1965 Sb., zákoník práce, ve znění zákona č. 155/2000 Sb.:

Pokyny České pošty pro označování Doporučených zásilek čárovými kódy

Pračka EVOGT 14064D3. Návod k použití

Systém podporuje různé typy referencí. Referenci může provést jak systémová část software, tak PLC program.

PRAKTIKUM... Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK. Odevzdal dne: Seznam použité literatury 0 1. Celkem max.

JUMO ctron 16/08/04 Kompaktní regulátor s časovačem a rampovou funkcí

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Magnetic Levitation Control

VH TECHNICKÉ PODMÍNKY

Návod na obsluhu vektorového obvodového analyzátoru R&S ZVL

Inovace výuky prostřednictvím šablon pro SŠ

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Paradigmata programování II Korutiny a nedeterminismus

Úvod do Operačních Systémů

Doplňkové programové balíčky

Sbírka úloh pro elektronickou stavebnici. Stručný popis programovacího jazyka Bascom AVR

Vítězslav Bártl. březen 2013

Registrace programů VIS

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

účetních informací státu při přenosu účetního záznamu,

Transkript:

awk programovatelný filtr Spouštění: Awk vzor {akce} nebo awk f prg_soubor [ soubory ] čte řádky ze zadaných souborů, nebo ze standardního vstupu výstup směřuje na standardní výstup Struktura programu: vzor { akce } vzor { akce } atd. vkaždém řádku čteném ze vstupu se hledá vzor. Pokud se najde provede se akce a pak se hledá další vzor atd. Poté se přejde na další řádek. vynechat lze vzor (akce se provede pro každý řádek) i akci (řádek se zkopíruje na standardní výstup) Pr.: who awk '/root/'

Záznamy a položky - vstup, který awk čte, se dělí do záznamů a položek na jednotlivé položky se odkazujeme $1, $2, $NF na celý záznam $0 Základní proměnné: FILENAME jméno aktuálního vstupního souboru FS oddělovač polí (implicitně mezera a tabulátor) NF počet polí ve vstupním záznamu NR číslo aktuálního vstupního záznamu RS oddělovač záznamů na vstupu (standardně \n) OFMT výstupní formát čísel (implicitně %.6g) OFS oddělovač polí ve výstupu (implicitně mezera) ORS oddělovač záznamů ve výstupním souboru (\n)

Příklady who awk '/root/ kde je přihlášen root awk { print } vypíše všechny vstupní řádky awk { print $2, $1 } -první a druhá položka prohozena a mezi nimi čárka

BEGIN a END BEGIN - definuje, co se provede před čtením prvního záznamu END - definuje, co se provede po přečtení posledního záznamu awk 'BEGIN { FS = ":" } $1 == "root"' /etc/passwd BEGIN { FS = : } zbytek prog. END { print NR } awk '{ s = s + $2 } END { print s, s/nr }'

Regulární výrazy jako vzor mohou být regulární výrazy, které se uzavírají do / / /L.*x/ - řádky, které obsahují L a potom x $1 ~ /^[Ll].*x$/ - řádky, jejichž 1. položka začíná L nebo l a končí x!~ -vybere řádky, které vzorek neobsahují awk /mapa/ { print $0 } file.txt -projde file a vypíše řádky, které obsahují slovo mapa

Relační výrazy mohou být použity relační operátory <, >, ==,!=, >=, <=, ~,!~ $1 >= s - řádky, kde první položka začíná znakem s, t, u.

Kombinace vzorů vzory lze i spojovat booleovskými operátory : && (AND), (OR),! (NOT) $1 >= r && $1 < w - řádky, jejichž první položka začíná r, s, t, u a v

Interval určený vzory /start/,/stop/ -akce se provede pro všechny řádky od řádku vyhovujícímu vzoru start, až po řádek vyhovujícímu vzoru stop

Příkazy stejné jako v jazyce C if, while, for, do while, break, continue, printf, return, next, delete pole [index], exit { if ($3 >1000) $3 = moc velké print } { for (i=1; i<= NF; i++) print $i }

PODMÍNKY A CYKLY if (podmínka) příkaz1 else příkaz2 for (výraz1; podmínka; výraz2) příkaz while (podmínka) příkaz while (podmínka) { příkaz výraz2 }

Příklady awk 'BEGIN { FS = ":" } { for (i=2; i <= NF ;i++) printf (" %s", $i); } { printf "\n"; }' /etc/passwd Následující příklad vypíše všechny sloupce, vyjma prvního. (Jistě by to šlo udělat jednodušeji, zde je to jako ukázka použití cyklu for)

Další parametry -Ffs nastavuje oddělovače sloupců (implicitně je to mezera a tabulátor). Použitím se ruší implicitní oddělovače -f pf udává programový soubor. Příkazy jsou vyhodnocovány vtom pořadí, vjakém jsou vsouboru -v var=value do var se přiřadí hodnota value (k dispozici je již v bloku BEGIN)

Systémové proměnné PATH obsahuje seznam cest, kde se vyhledávají programy spouštěné pomocí funkce system () standardně se použije.:/usr/lib/awk:/usr/local/lib/awk

Integrované funkce exp, log, sqrt, sin, cos blength [([s])] vrátí délku argumentu vbajtech nebo délku $0, pokud není argument zadán length [([s])] vrátí délku argumentu ve znacích nebo délku $0, pokud není argument zadán Př: awk {print length} soubor rand () vrátí náhodné číslo mezi nulou a jednou srand ([expr]) nastaví klíčovou hodnotu pro rand a vrátí předchozí klíčovou hodnotu. Pokud není expr zadáno, je použit aktuální čas. int (x) vrátí celou část čísla x substr (s, m[,n]) vrátí nejvíce n znaků z řetězce spočínaje pozicí m, číslovanou od 1. Pokud je n větší než délka řetězce, je vrácený řetězec omezen délkou řetězce. Př: ll awk f prog prog: /^total/ {next} {print substr ($0, 1, 10)}

Integrované funkce ndex (s, t) vrátí pozici prvního výskytu řetězce t v řetězci s ve znacích, číslování je od 1, nebo nulu, pokud se t v snevyskytuje. Př: awk {print index ($0, an } soubor match (s, ere) vrátí pozici prvního výskytu regulárního výrazu ere vřetězci s, číslování je od 1, nebo 0, pokud se v snevyskytuje. Proměnné RSTART a RLENGTH jsou nastaveny na pozici a délku shodného řetězce. Př: awk {print match ($0, /an/} soubor split (s, a[, fs]) rozdělení řetězce s do pole elementů a [1], a [2],, a [n], a vrátí n. Rozdělování končí, pokud přestane platit regulární výraz fs nebo pokud již není nalezený oddělovač sloupců (FS). Př: awk f prog soubor prog: {for (i=1;i<=split ($0, a);i++) print a[i]} sub (ere, repl [, in]) nahradí repl za první výskyt regulárního výrazu ere vřetězci in. Pokud není in zadáno, bere se $0. Vrátí počet náhrad. Př: awk f prog soubor prog: {sub (/ /, x, $0)} {print $0}

Integrované funkce gsub stejný jako sub, ale nahrazuje všechny výskyty regulárního výrazu. Vrátí počet náhrad. sprintf (fmt, expr, ) vrátí řetězec výrazů expr zformátovaných podle fmt system (cmd) provede příkaz cmd a vrátíjeho návratovou hodnotu toupper (s) výsledek převede všechna písmena v řetězci sna velká a vrátí tolower (s) výsledek převede všechna písmena v řetězci sna malá a vrátí getline nastaví $0 na následující vstupní záznam vaktuálním vstupním souboru. Vrací 1 pro Ok, 0 pro konec souboru a 1 pro chybu getline <soubor nastaví $0 na následující vstupní záznam vsouboru soubor getline x nastaví $0 na x cmd getline příkazu cmd. každé volání getline nastaví $0 na další řádku výstupu

Řetězcové konstanty - řetězcové konstanty jsou v awk uzavřeny do uvozovek \\ -obr. lomítko \a alert \b - backspace \f FF \n newline \r CR \t horiz. tabulátor \v v. tabulátor \xhex 16 znak \oct 8 znak \c znak

Příklady Použijte filtr awk a zjistěte z výstupu programu last všechna svoje čtvrteční přihlášení. Výpis upravte do následujícího formátu. ve ctvrtek:nat.felk.cvut.cz zacatek:09:24 konec:10:46

ŘEŠENÍ last awk '{if ($1=="chaloj3" && $4=="Thu") print "ve ctvrtek:",$3,"zacatek:",$7,"konec:",$9}'