Awk: Porovnání verzí
Smazaný obsah Přidaný obsah
→Jak se awk implicitně dívá na soubor: "bílé místo" > "bílý znak" |
optimalizace kódu; kosmetické úpravy |
||
Řádek 7:
Awk je jedním z nejstarších unixových nástrojů, zvláště mocným ve spojení s rourami, který se dodnes používá ve všech moderních operačních systémech, vycházejících z Unixu. Nejde však o původní awk, ale jeho klony (i když s původní aplikací se můžete setkat také). Vlastní příkaz awk je tak většinou pouze symbolickým odkazem.
= Jiné implementace awk
Awk byl původně napsán v r.1977 jako součást distribuce UNIX v.7
Řádek 21:
: http://short.stop.home.att.net/freesoft/txtfrmt.htm - obsahuje odkazy na verze awk pro MS Windows/DOS</small>
= Jak pracuje awk =
Awk postupně načítá ze vstupního proudu dat jednotlivé řádky, a v nich postupně vyhledává ''vzorky'' - znakové řetězce, které mohou být určeny např. regulárními výrazy. Pokud nějaký najde, pak provede s řádkem zadanou ''akci''. Po aplikaci sady vzorků a k nim definovaných akcí, pokračuje awk dalším řádkem.
Řádek 55:
Jelikož je řetězec "vzorek" obsažen i v druhém hledaném řetězci "jiny_vzorek", budou postupně za sebou posílány na výstup obsahy první i druhé položky řádku obsahujícího řetězec "jiny_vzorek"
= Jak se awk implicitně dívá na soubor =
<pre>
Řádek 107:
'''exit''' ''výraz''
= Vzorky =
== Relační výrazy ==
== Kombinace vzorků ==
Jednotlivé vzorky lze spojovat logickými operátory '''&&''' (AND), '''||''' (OR) a '''!''' (NOT)
Řádek 141:
: Jak vidno výrazu vyhověl rovněž "Dodatečný řádek", protože jeho první položka, řetězec "Dodatečný" sice začíná na "D", ale nekončí na "k"
== Intervaly ==
== BEGIN a END ==
Potřebujeme-li aby awk vykonal nějakou akci před vlastním zpracováním proudu dat, nebo po, použijeme klíčového slova BEGIN nebo END. Jde v podstatě o speciální typ vzorků, které ovšem nejsou testovány pro každý záznam, ale naopak, jejich akce jsou spuštěny před začátkem zpracování dat (BEGIN) a jeho skončení (END).
Řádek 155:
</pre>
= Akce =▼
▲=Akce=
Jako akce se označuje sekvence příkazů pro awk. Ty se od sebe oddělují buďto prázdnými řádky
Řádek 169 ⟶ 168:
awk 'BEGIN{hodnota=0};{hodnota+=$5};END{print hodnota}' soubor_s_daty
== Proměnné a výrazy ==▼
▲==Proměnné a výrazy==
Jak už naznačuje výše uvedený příklad, awk pracuje také s proměnnými a matematickými výrazy
== Funkce ==
= Volby pro awk =
= Použitelné proměnné - shrnutí =
{| class="wikitable"
|-
! Proměnná
! Popis
|-
| RS
| oddělovač záznamů
|-
| NR
| číslo aktuálně zpracovávaného záznamu
|-
| FS
| oddělovač položek
|-
| NF
| počet položek aktuálního záznamu
|-
|
| jméno aktuálního vstupního souboru (v případě standardního vstupu "'''-'''"
|}
|