Awk: Skillnad mellan sidversioner
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
Rad 49: | Rad 49: | ||
mawk | mawk | ||
=== 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