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í =
 
{| border="2" cellpadding="1" cellspacing="0" style="font-size: 75%; border: gray solid 1px; border-collapse: collapse; width: 100%"
{| class="wikitable"
|- style="background: #ececec;"
|-
! Proměnná
! Popis
|-
| RS
| <nowiki>RS</nowiki>
| oddělovač záznamů
|-
| NR
| <nowiki>NR</nowiki>
| číslo aktuálně zpracovávaného záznamu
|-
| FS
| <nowiki>FS</nowiki>
| oddělovač položek
|-
| NF
| <nowiki>NF</nowiki>
| počet položek aktuálního záznamu
|-
| <nowiki>FILENAME</nowiki>
| jméno aktuálního vstupního souboru (v případě standardního vstupu "'''-'''"
|}