Awk: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
Rad 49: Rad 49:
mawk   
mawk   


==== DET AWK SPRÅKET ====
=== DET AWK SPRÅKET ===


====     1. Programstruktur ====
=====     1. Programstruktur =====
        Ett AWK-program är en sekvens av mönster {action}-par och användarfunktionsdefinitioner.
        Ett AWK-program är en sekvens av mönster {action}-par och användarfunktionsdefinitioner.


Rad 75: Rad 75:


'''Följande satser styr programflödet inuti block.'''
'''Följande satser styr programflödet inuti block.'''


if ( expr ) påstående
if ( expr ) påstående

Versionen från 10 maj 2023 kl. 05.55

NAMN

mawk - mönsterskanning och textbearbetningsspråk

SYNOPSIS

mawk [-W alternativ] [-F värde] [-v var=värde] [--] 'program text' [fil ...]

mawk [-W alternativ] [-F värde] [-v var=värde] [-f program-fil] [--] [fil ...]

BESKRIVNING

mawk är en tolk för programmeringsspråket AWK. AWK-språket är användbart för manipulering av datafiler, texthämtning och bearbetning,och för prototyper och experimenterande med algoritmer. mawk är en ny awk vilket betyder att den implementerar AWK-språket som definierats i Aho, ernighan och  Weinberger, The AWK Programming Language, Addison-Wesley Publishing, 1988 (hädanefter kallad AWK-boken.) mawk överensstämmer med POSIX  1003.2 (utkast 11.3) definition av AWK-språket som innehåller några funktioner som inte beskrivs i AWK-boken, och mawk tillhandahåller ett litet antal förlängningar. Ett AWK-program är en sekvens av mönster {action}-par och funktionsdefinitioner. Korta program skrivs in på kommandoraden som vanligtvis är innesluten i   ' ' för att undvika skaltolkning. Längre program kan läsas in från en fil med alternativet -f. Datainmatning läses från listan över filer på  kommandoraden eller från standardinmatning när listan är tom. Inmatningen delas upp i poster som bestäms av postseparatorvariabeln, RS. Inledningsvis är RS = "\n" och poster är synonyma med linjer. Varje post jämförs mot varje mönster och om det stämmer överens, programtexten  för {action} exekveras.

ALTERNATIV

-F värde ställer in fältseparatorn, FS, till värde.

-f fil  Programtext läses från filen istället för från kommandoraden. Flera -f-alternativ är tillåtna.

-v var=värde  tilldelar värde till programvariabel var.

Alternativen ovan kommer att vara tillgängliga med alla POSIX-kompatibla implementeringar av AWK. Implementeringsspecifika alternativ inleds med -W. mawk tillhandahåller dessa:

--    indikerar det entydiga slutet av alternativen.

       -W dump   skriver en assembler-liknande lista över programmets interna representation till stdout och avslutar 0 (vid framgångsrik kompilering).

       -W exec file Programtext läses från fil och detta är det sista alternativet.

Detta är ett användbart alternativ till -f på system som stöder #! "magiskt nummer"-konvention för körbara skript. De  implicerade

skicka in sökvägen till själva skriptet som den sista parametern och förvänta dig inte mer än ett "-"-alternativ på #! linje. Därför att

mawk kan kombinera flera -W-alternativ separerade med kommatecken, du kan använda det här alternativet när ett extra -W-alternativ behövs.

-W help skriver ut ett användningsmeddelande till stderr och avslutar (samma som "-W usage").      

-W interactive ställer in obuffrad skrivning till stdout och linjebuffrad läsning från stdin. Poster från stdin är linjer oavsett värdet på RS.

-W posix_space tvingar mawk att inte betrakta '\n' som utrymme.

-W random=num anropar srand med den givna parametern (och åsidosätter beteendet för automatisk seeding).

-W sprintf=num justerar storleken på mawks interna sprintf-buffert till antal byte. Mer än sällsynt användning av det här alternativet indikerar att mawk bör kompileras om.

-W usage      skriver ut ett användningsmeddelande till stderr och avslutar (samma som "-W help").

-W version     mawk skriver sin version och upphovsrätt till stdout och kompilerade gränser till stderr och avslutar 0.

mawk accepterar förkortningar för något av dessa alternativ, t.ex. "-W v" och "-Wv" säger båda till mawk att visa sin version.

mawk 

DET AWK SPRÅKET

    1. Programstruktur

        Ett AWK-program är en sekvens av mönster {action}-par och användarfunktionsdefinitioner.

        Ett mönster kan vara:

             BÖRJA

             SLUTET

             uttryck

             uttryck, uttryck

En, men inte båda, av mönster {action} kan utelämnas. Om {action} utelämnas är det implicit { print }. Om mönstret utelämnas är det im‐

uttryckligen matchade. BEGIN- och END-mönster kräver en åtgärd.

Uttalandet avslutas med nya rader, semikolon eller båda. Grupper av satser som åtgärder eller loopkroppar blockeras via { ... } som i C.

Den sista satsen i ett block behöver ingen terminator. Tomma linjer har ingen betydelse; en tom sats avslutas med semikolon. Lång uttalanden kan fortsätta med ett snedstreck, \. Ett uttalande kan brytas utan ett snedstreck efter kommatecken, vänster klammerparentes, &&, ||, gör, annars, höger parentes för en if, while eller for-sats, och höger parentes för en funktionsdefinition. En kommentar börjar med # och sträcker sig till, men inkluderar inte slutet av raden.


Följande satser styr programflödet inuti block.

if ( expr ) påstående

if ( expr ) påstående else påstående

while ( expr ) påstående

do påstående while ( expr )

for ( opt_expr ; opt_expr ; opt_expr ) påstående

for ( var in array ) påstående

continue

break