Awk is die grootste teksverwerkingsinstrument wat u nie geweet het dat u nodig het nie. Maar as u met baie data werk, het u waarskynlik gedink soos: "Dit sal regtig lekker wees om die tweede en vyfde kolom data uit hierdie tabel te onttrek." En dit, in die eenvoudigste vorm, is wat Awk doen.
1 'N Klein geskiedenis
1.1 Awk voorbeeld
2 Awk Resources
2.1 Aanlyn tutoriale
'N Klein geskiedenis
In die dae voordat die meeste mense geweet het wat 'n verhoudingsdatabasis was – en amper twee dekades voor die ontwikkeling van MySQL – is 'n groot hoeveelheid data in tekslêers gestoor. Die waarheid is dat baie data nog steeds op hierdie manier geberg word. Dit geld veral op Unix-bedryfstelsels. Byvoorbeeld, die Unix / etc / passwd-lêer is slegs 'n tekslêer met een reël vir elke gebruiker op die stelsel, en elke veld vir die gebruiker word deur 'n kolon geskei. Byvoorbeeld:
admin: *: 1001: 2001: Administrateur: / huis / wortel: / huis / sh
Op groot stelsels kan sulke passwd-lêers duisende reëls bevat. U kan voorstel dat daar tye is dat u 'n volledige lys van die name van mense met rekenings op u rekenaar wil hê. In hierdie geval sou dit die vyfde veld wees. Dus in 1977 het drie programmeerders 'n algemene program geskep om dit te doen. Hulle was: Alfred Aho, Peter Weinberger, en Brian Kernighan. En hul voorletters AWK is hoe Awk sy naam gekry het.
Awk veronderstel standaard dat velde van mekaar geskei word deur ruimtekarakters. Maar u kan Awk sê om 'n ander karakter te gebruik deur die -F (of –veld-skeier) -vlag te gebruik om Awk 'n ander veld-skeier te gee. In die geval van / etc / passwd, wil ons die karakter:: gebruik.
As die karakter van die skeiding gegee word, ken Awk die eerste veld toe aan die veranderlike $ 1, die tweede veld aan die veranderlike $ 2, ensovoorts. Die hele lyn word aan $ 0 toegeken. As dit bekend lyk, kan dit wees omdat dit die Bourne- en Bash-skrip-opskrifte opdragreëlparameters bestuur.
Alhoewel Awk-skripte in lêers geplaas kan word, word dit gewoonlik net op die opdragreël geplaas as deel van die Awk-opdrag. Hier is 'n eenvoudige awk-opdrag wat al die gebruikers- en regte name van die rekeninge wat in die / etc / passwd-lêer gelys is, sal uitvoer:
Dit sal die volgende afvoer lewer uit ons voorbeeld / etc / passwd-lêer hierbo:
brian Brian Kernighan
Dit is omtrent so eenvoudig soos 'n Awk-program. Maar u kan waarskynlik sien dat dit alleen baie kragtig is. Dikwels sal mense so 'n lêer in 'n sigblad belangrik maak, die onnodige kolomme uitvee en dan die resultaat as 'n nuwe tekslêer stoor. Dit is omslagtig as jy binne 'n paar sekondes dieselfde ding met Awk kan doen. En dit is net die begin. U kan uitset voorwaardelik maak; u kan die uitset heeltemal beheer; as u met numeriese gegewens te doen het, kan u dit bereken; en soveel meer.
Awk is 'n baie maklike taal om te leer. En daar is baie hulpbronne om dit te doen. Ons sal 'n paar hieronder bespreek.
Hieronder is 'n aantal tutoriale wat heel aan die begin is en u deur die belangrikste aspekte van die taal neem. Die een wat u die nuttigste vind, sal van u afhang.
Grymoire Awk-tutoriaal: dit is Bruce Barnett se uitstekende inleiding tot Awk. Kyk na al hierdie Unix-tutoriale.
Algemene drade: Awk deur voorbeeld: dit is van IBM, en bied 'n pynlose manier om Awk te leer. Kyk eers na Deel 2 nadat u klaar is.
Awk Tutorial: dit is die Tutorials Point-inleiding tot Awk wat u selfs deur die aflaai en installering daarvan op Linux-masjiene neem.
'N Awk Primer: hierdie tutoriaal verloop redelik vinnig, maar as jy gemaklik is met shell-scripting of as jy Awk in die verlede gebruik het, is dit 'n goeie keuse.
Daar is 'n aantal goeie boeke wat 'n basis vorm vir Awk.
The Awk Programming Language deur Aho en Kernighan: dit is die oorspronklike boek oor Awk. Maar in teenstelling met die meeste sulke boeke van die oorspronklike ontwikkelaars, is hierdie een regtig goed en maklik om te verstaan.
sed & Awk van Dougherty en Robbins: dit is 'n klassieke tema wat handel oor Awk sowel as die stream editor (sed). Die twee word gereeld saam gebruik. Die Sed en Awk: Pocket Reference is ook van belang as u eers gemaklik is met die stelsels.
AWK-programmering: vrae en antwoorde deur George Duckett: dit is 'n interessante Kindle-boek wat min of meer kookboek is. Dit bevat baie wonderlike vrae wat die manier waarop u aan Awk dink en die maniere waarop u dink dat dit gebruik kan word, sal uitbrei.
Effektiewe awk-programmering: Universele teksverwerking en -patroonpassing deur Arnold Robbins: dit is soortgelyk aan 'n voortsetting van The Awk-programmeringstaal. Dit kom dieper in die taal en fokus op die Gnu-weergawe van Awk, Gawk.
Sedert die eerste een in 1977 was daar 'n aantal implementering van Awk. In 1985 (voordat The Awk Programming Language gepubliseer is), is Awk eintlik uitgebrei. Daar word dikwels na daardie weergawe verwys as "nuwe Awk" of nawk. Daar is tans meer gewilde weergawes beskikbaar.
Gawk: dit is die implementering van die Awk van die Gnu-projek. Dit is uiters gewild en ondersteun ander tale beter as ander weergawes.
BWK: dit is 'die een waarheid Awk', aangesien dit die een is wat gebruik word vir The Awk Programming Lantaal. Dit word wyd op FreeBSD gebruik.
Mawk: dit is 'n weergawe wat oorspronklik deur Mike Brennan geskryf is, maar sedert 1993 onderhou en bygewerk is deur Thomas Dickey. Dit fokus op spoed.
BusyBox: dit is 'n algemene hulpmiddel wat 'n aantal vereenvoudigde Unix-instrumente bied, waaronder Awk.
Soms moet u net vrae vra. En daar is baie mense op die internet wat Awk goed ken. Hier is 'n paar beter plekke om na te gaan om vrae te beantwoord.
Comp.lang.awk Google Group: dit is 'n relatief aktiewe forum wat die moeite werd is om na te gaan.
Stapel oorvloei Awk-vrae: dit is 'n bladsy met die nuutste vrae wat gemerk is as wat dit met Awk te doen het. Dit is 'n uitstekende verwysing en plek om u vrae te stel.
Awk Reddit: dit is die Subreddit vir Awk. Dit is nie baie aktief nie, maar daar is baie kundige mense rondom dit, en dit is 'n goeie plek om vrae te beantwoord.
Awk is 'n uitstekende taal vir teksverwerking. En dit kan ongelooflike dinge doen as jy die taal ver genoeg wil uitstoot. Terselfdertyd is die sintaksis eenvoudig genoeg dat dit vinnig deel kan word van u werktuigstel. Die hulpbronne wat hier aangebied word, sal u alle hulp bied wat u benodig.
openbaarmaking: U ondersteuning help om die webwerf aan die gang te hou! Ons verdien 'n verwysingsfooi vir sommige van die dienste wat ons op hierdie bladsy aanbeveel. SMIL is 'n akroniem vir Synchronised Multimedia Integration Language. Ondanks die spelling daarvan word dit uitgespreek: 'Glimlag'. Op grond van XML vertoon SMIL nie net die inhoud nie, […]
openbaarmaking: U ondersteuning help om die webwerf aan die gang te hou! Ons verdien 'n verwysingsfooi vir sommige van die dienste wat ons op hierdie bladsy aanbeveel. Die meeste mense het waarskynlik van die basiese programmeringstaal gehoor, maar daar is sommige minder bekende geure van Basic. BBC Basic is 'n weergawe van die Basiese programmeringstaal […]
openbaarmaking: U ondersteuning help om die webwerf aan die gang te hou! Ons verdien 'n verwysingsfooi vir sommige van die dienste wat ons op hierdie bladsy aanbeveel. Terwyl u 'n webwerf bestudeer, het u miskien 'n bietjie teks gekry oor die feit dat u toegelaat word om na bladsye op die webwerf te skakel. Dit […]