awk

Páni

Informace
Vyvinul Alfred Aho , Brian Kernighan a Peter J. Weinberger
První verze 1979
Poslední verze IEEE Std 1003.1-2008
Vklad openbsd.su/src/usr.bin/awk
Typ Obslužný program UNIX ( d )
Programovací jazyk založený na datech ( d )
Skriptovací jazyk
Procedurální programování Programování
založené na datech ( en )

awk - pojmenovaný podle tří tvůrců, Alfreda Aho , Petera Weinbergera a Briana Kernighana - je lineární jazyk pro zpracování plochých souborů , který je k dispozici na většině unixových systémů a pod Windows s MinGW , Cygwin nebo Gawk . Používá se hlavně pro manipulaci s textovými soubory pro složité operace hledání, nahrazování a transformace.

Prezentace

Awk se nejčastěji používá k výrobě textových souborů se zvláštními specifikacemi (výměny mezi různými heterogenními informačními systémy). Používá se také jako soubory analyzátoru ( analyzátoru ) XML nebo textové soubory ke generování příkazů SQL z extrahovaných dat. Nakonec jej lze použít pro složité výpočtové operace a formátování nezpracovaných dat pro vytváření statistických tabulek.

Rozlišujeme původní příkaz awk od nového awk (nawk), který se na trh dostal o něco později. GNU implementace awk jsou ve skutečnosti nové awk . Příkaz awk se obvykle nachází v / usr / bin na Unixu, ale některé systémy GNU / Linux jej umisťují do / bin. To vynucuje shebang typu, #!/usr/bin/env awk -faby byla zajištěna maximální přenositelnost awk skriptů.

Funguje jako programovatelný filtr, který bere řadu řádků jako vstup (jako soubory nebo přímo přes standardní vstup) a zápis na standardní výstup, který lze přesměrovat na jiný soubor nebo program. Program Awk se skládá ze tří odlišných bloků, které mohou nebo nemusí být použity pro zpracování souboru (předzpracování, zpracování, postprocesing). Awk načte vstupní řádek po řádku a poté vybere (nebo ne) řádky, které mají být zpracovány regulárními výrazy (a případně čísly řádků). Jakmile je řádek vybrán, je rozdělen na pole podle oddělovače vstupu označeného v programu awk symbolem FS (který ve výchozím nastavení odpovídá znaku mezery nebo tabulátoru). Pak jsou k dispozici různá pole v proměnných: $ 1 (první pole), $ 2 (druhé pole), $ 3 (třetí pole),…, $ NF (poslední pole).

„Awk“ je také přípona názvu souboru používaná pro skripty psané v tomto jazyce (používá se zřídka).

Syntaxe je inspirována C  :
awk [options] [programme] [fichier]
kde je struktura programu:
'motif1 { action1 } motif2 { action2 } …'
Každý řádek souboru je postupně porovnáván s různými vzory (nejčastěji regulárními výrazy a globálně logickým výrazem) a akcí prvního vzoru, která vrací skutečnou hodnotu je proveden. Pokud není přijat žádný důvod, program pokračuje zpracováním dalšího řádku.

Některé možnosti:

Technický popis

Soubor je rozdělen na řádky ( záznamy v angličtině), které jsou samy rozděleny na pole ( pole v angličtině)

Oddělovače vstupů a výstupů jsou uloženy v proměnných a lze je změnit:

Máme dvě speciální masky:

K definování intervalu používáme čárku takto:

Několik funkcí je již implementováno:

Máme kontrolní struktury. Syntaxe pochází přímo z C:

Ve srovnání s C existují některá rozšíření:

Nějaké příklady

Implementace

Existují různé programy, které používají syntaxi původního awk, zde jsou nejznámější:

Podívejte se také

Bibliografie

Související články

externí odkazy