akavet

Awk

Information
Udviklet af Alfred Aho , Brian Kernighan og Peter J. Weinberger
Første version 1979
Sidste version IEEE Std 1003.1-2008
Depositum openbsd.su/src/usr.bin/awk
Type UNIX-værktøj ( d )
Datadrevet programmeringssprog ( d )
Scriptingsprog
Procedurel programmering
Datadrevet programmering ( en )

awk - opkaldt efter de tre skabere, Alfred Aho , Peter Weinberger, og Brian Kernighan - er en line-baserede flad fil forarbejdning sprog , der findes på de fleste Unix -systemer og under Windows med MinGW , Cygwin eller Gawk . Det bruges hovedsageligt til manipulation af tekstfiler til komplekse søge-, udskiftnings- og transformationsoperationer.

Præsentation

Awk bruges oftest til produktion af tekstfiler med bestemte specifikationer (udveksling mellem forskellige heterogene informationssystemer). Det bruges også som analysatorfiler ( parser ) XML eller tekstfiler til at generere kommandoer SQL fra de udpakkede data. Endelig kan den bruges til komplekse beregningsoperationer og formatering af rådata til at lave statistiske tabeller.

Vi skelner awk, den oprindelige kommando, fra den nye awk (nawk), der ankom lidt senere på markedet. GNU- implementeringerne af awk er faktisk nye awk . Kommandoen awk findes normalt i / usr / bin på Unix, men nogle GNU / Linux- systemer placerer den i / bin. Dette håndhæver en shebang af typen for #!/usr/bin/env awk -fat sikre maksimal bærbarhed af awk-scripts.

Det fungerer som et programmerbart filter, der tager en række linjer som input (som filer eller direkte gennem standardinput) og skriver til standardoutput, som kan omdirigeres til en anden fil eller et andet program. Et Awk-program består af tre forskellige blokke, som måske eller måske ikke bruges til behandling af en fil (forbehandling, behandling, efterbehandling). Awk læser input linje for linje og vælger derefter (eller ikke) de linjer, der skal behandles med regulære udtryk (og muligvis linjenumre). Når linjen er valgt, er den opdelt i felter i henhold til en indgangsseparator, der er angivet i awk-programmet med symbolet FS (som standard svarer til mellemrums- eller tabulatortegnet). Derefter er de forskellige felter tilgængelige i variabler: $ 1 (første felt), $ 2 (andet felt), $ 3 (tredje felt),…, $ NF (sidste felt).

"Awk" er også filtypenavnet, der bruges til scripts skrevet på dette sprog (sjældent brugt).

Syntaksen er inspireret af C  :
awk [options] [programme] [fichier]
hvor programmets struktur er:
'motif1 { action1 } motif2 { action2 } …'
Hver linje i filen sammenlignes successivt med de forskellige mønstre (ofte regulære udtryk og globalt et boolsk udtryk) og handlingen af ​​det første mønster, der returnerer den sande værdi udføres. Hvis der ikke accepteres nogen grund, fortsætter programmet til behandling af den næste linje.

Nogle muligheder:

Teknisk beskrivelse

En fil er opdelt i linjer ( poster på engelsk) selv opdelt i felter ( felter på engelsk)

Input-output separatorerne er gemt i variabler og kan ændres:

Vi har to specielle masker:

For at definere et interval bruger vi kommaet således:

Flere funktioner er allerede implementeret:

Vi har kontrolstrukturer. Syntaksen kommer direkte fra C:

Sammenlignet med C er der nogle udvidelser:

Nogle eksempler

Implementering

Der er forskellige programmer, der bruger syntaksen for den originale awk, her er de mest berømte:

Se også

Bibliografi

Relaterede artikler

eksterne links