Õpi Linuxit

Linux awk käsk 10 näite abil

Linux awk käsk 10 näite abil

Lihtsatesse tekstifailidesse salvestatud väärtuslike andmete analüüsimiseks on alati kasutatud arvutisüsteeme. Omakorda hallatakse arvutisüsteeme logifailide kaudu. Nendes kahes olukorras on potentsiaalselt tavaline see, et neis on palju andmeid, mida tuleb enne andmete tegelikku lugemist sujuvamaks muuta; muidu on see lihtsalt segane.

Näiteks kui loete mõnda andmeid tabelivormis, soovite mõnda veergu, teisi mitte.

See nõue oli kohutav isegi päeva tagasi ja sellest tulenevalt on GNU projektis hämmastav tööriist, mis aitab kasutajatel andmeid parema kogemuse saamiseks filtreerida ja välja võtta. See tööriist on AWK.

Ajalugu

AWK on tegelikult tekstitöötlusele pühendatud programmeerimiskeel. Seda kasutatakse andmete väljavõtmiseks konkreetsetes mustrites. Selle töötas 1970. aastatel välja Bell Labs, Alfred Aho, Peter Weinberger ja Brian Kernighan (nende perekonnanimede initsiaalid sünnitasid nime). AWK areng sellega ei peatunud. 1985. aastal tutvustati uut versiooni, mis tõi awk käsusse uued muudatused, sealhulgas võime hallata mitut sisendvoot, arvutatud regulaaravaldisi, kasutaja määratletud funktsioone ja palju muud! Lühidalt, värskendus muutis selle võimsamaks programmeerimiskeeleks.

Awk on teistsuguse rakendusega. Nõuetekohase rakenduse tagamiseks, mis pakub standardset lähenemist, kirjutas Paul Rubin 1986. aastal gawk. See toimis uuema awk-ga hästi.

Peale selle lisati 1989. aastal süsteemi V väljaandmisel uusi funktsioone. Arendajad täiustasid ka selle tumedaid nurki, muutes programmeerijatele ja kasutajatele selle kasutamise paremaks. Viimane muudatus toimus 1997. aastal, kui awk nägi võrgule juurdepääsu - pakkudes kasutajatele võimalust probleeme eemalt lahendada.

Viimane ümberkirjutamine tehti 2011. aastal, kui John Haque kirjutas gawki sisemised osad ümber.

Asjad, mida saate AWK-ga teha

Nüüdseks peaks olema mõnevõrra selge, milleks AWK võimeline on. See on üldotstarbeline skriptikeel, mis võimaldab teil tekstitöötlemisega hakkama saada. Edasijõudnud kasutajad saavad seda kasutada ka analüüsimiseks ja aruandluseks.

AWK ei ole nagu teised programmeerimiskeeled, kuna see on andmepõhine, mitte protseduuriline programmeerimiskeel. See tähendab, et saate seda tõhusalt kasutada tekstisisestuse vastu toimingute tegemiseks. Lühidalt öeldes saate seda kasutada andmete teisendamiseks, sisestamiseks ja ka standardväljundina saatmiseks.

Lühidalt öeldes võite AWK abil teha lihtsaid toiminguid, näiteks jagada iga sisendrida väljadeks, skaneerida faili ridade kaupa, sooritada toiminguid vaste joontel jne! Käsk awk on kasulik ka protseduurivormindatud aruannete jaoks ja teisendab andmefaile. Lisaks saate juurdepääsu programmeerimiskonstruktsioonidele, nagu tingimuslikud ja tsüklid, stringide ja aritmeetilised toimingud ning väljundrida vormindamine.

Kuidas awk töötab

Selles osas õpime, kuidas awk töötab. Oluline on teada saada, et awk-l on erinevad rakendused. Ühel lehel viibimise tagamiseks arutame ja kasutame GNU juurutamist - mida rahvasuus nimetatakse gawk. Enamasti on gawk seotud awk interpretaatoriga.

Hea mõistmise saamiseks peame kõigepealt aru saama kirjetest ja väljadest.

On hästi teada, et awk suudab töödelda tekstivooge ja andmefaile. Andmete töötlemiseks jagatakse sisend väljadeks ja kirjeteks. Selle tagamiseks, et awk ei saaks ülekoormust, töödeldakse üks kirje igal ajahetkel kuni sisendi lõpuni. Lisaks jagatakse kirjed täiendavalt lihtsateks osadeks, kasutades märke kasutavat kirjeeraldit. Samuti eraldatakse iga kirje uue rea märkide abil. See tähendab, et iga rida võib nimetada rekordiks.

RS-muutuja abil saate valida uue kirjeeraldaja.

Edasi tuleb viilitud eraldaja. Nagu tavaliselt, on igal kirjel väljad ja need eraldatakse väljaeraldaja abil. Välja eraldajaks võib olla tühik, vahelehed, uue rea märgid ja tühik. Samuti viidatakse igale väljale sümboliga $, kusjuures välja number algab tähega 1. See tähendab, et esimest välja võib tähistada kui $ 1, teist aga kui $ 2. Nii saab n-nda välja tähistada kui $ nf.

Awk programm

Awk teine ​​aspekt on awk-programm. Kui soovite töötada awk-ga, peate kirjutama programmi, mis laseb käsul teksti täita või töödelda. Programm awk pakub reeglite ja kasutaja määratud funktsioonide abil palju funktsionaalsust. Reeglid töötavad tegevuspaari või ühe mustriga ning reeglid eraldatakse semikoolonite või uue joone abil.

Juhul, kui mõtlete, näeb awk-programm välja nagu allpool.

muster action muster action… 

Lühidalt öeldes töötab programm awk mustrite põhjal kirjete vaste järgi. Kui muster leitakse kirjest, siis ta töötleb seda. Kui ei, siis sobitatakse kogu kirje, veendumaks, et midagi reeglite alusel kokku sobib.

awk käsunäited

Nüüd, kui oleme awk-käsust ja selle toimimisest hästi aru saanud, on meil nüüd aeg tutvuda mõne awk-käsu näitega.

Kui te pole kunagi varem awki kasutanud, võiksite teada, et awki saab kasutada järgmiste valikutega:

programmifail awk options

Valikud, mida saate awk-ga kasutada, hõlmavad järgmist

Näide 1: lugege AWK skripte

Üks levinumaid viise awk kasutamiseks on skriptide lugemine. Linuxi kasutajana saate luua üksikute jutumärkide abil awk-skripti.

Selleks peate terminali sisestama järgmise käsu.

$ awk 'print "Tere tulemast tere, maailm - AWK õpetus"'

Ülaltoodud näites tagastatakse see, mida tippite, ise ekraanile. Käsk jätkab täitmist seni, kuni olete selle lõpetanud, vajutades klahvikombinatsiooni CTRL + D.

Näide 2: Mitme käsu kasutamine

Teine awk tavaline kasutus on mitme käsu kasutamine. Kasutajana võiksite soovitud tulemuse saamiseks ühendada kaks awk-käsku üheks. Selles näites väljastame stringi ja asendame seejärel stringi teise sõna uue sisendiga.

$ kaja "Tere maailm" | awk '$ 2 = "Universum; print $ 0"'

Ülaltoodud näites kajasime kõigepealt terminali juurde “Tere, maailm”. Järgmisena ühendasime veel ühe awk-käsu, kus asendasime teise sõna Universumiga - ja väljastasime lõpuks stringi, milleks on Hello Universe.

Näide 3: Muutuja kasutamine

Muutujad võimaldavad teil teavet salvestada ja neile juurde pääseda. Kui olete programmeerimiskeeli varem kasutanud, teate kindlasti neist. Awk-i puhul kasutate seda tekstifailide töötlemiseks. Muutujate abil pääsete juurde faili teatud andmeväljadele nagu allpool.

Sel eesmärgil lõime uue tekstifaili mynewfile, kuhu sisestasime mõned juhuslikud, kuid ilusad read.

Järgmisena peate käivitama käsu, nagu allpool näidatud.

awk 'print $ 1' mynewile

Nagu näete, väljastab see failist selle konkreetse muutuja, mis näitab seda välja. Samuti peaksite nägema viga, mille ma tegin.

Näide 4: AWK eeltöötlus

Käsuga awk saate lisada eeltöötluse. Selleks peate kasutama märksõna BEGIN.

Kui loete tähelepanelikult, lõime ülalt uue faili. Proovime faili sisu tutvustamiseks kasutada awk eeltöötlust.

Selle käsk on järgmine.

awk 'awk BEGIN print "Faili sisu:"> print $ 0', mynewfile

Ülaltoodud ekraanipildi näide pole õige. Kasutasin „BEGIN” asemel „Begin”, mistõttu te ei näe printimisavalduse täitmist. Jätan selle teile proovimiseks ja teie tulemuse vaatamiseks!

Näide 5: skripti lugemine failist

See on keeruline. Siin saate faili lugemiseks kasutada awk-skripti.

Loome uue skripti, mis sisaldab järgmist.

print $ 1 "universum algab" $ 6 "

Salvestasime faili ajakirjana.

Nüüd käivitage terminalis järgmine käsk.

$ awk -F: -f uudiskiri / etc / passwd

Põnev, eks!

Näide 6: AWK järeltöötlus

Järgmisena heidame pilgu AWK järeltöötlusele. See töötab sarnaselt eeltöötlusega, kuid seekord kasutab järeltöötlus käsku END.

$ awk 'BEGIN print "Faili sisu algab kohe:">> print $ 0>> LÕPP print "Fail lõpeb"' mynewfile

Näide 7: Kasutaja määratletud muutujad

Muutujaid saate kasutada ka käsus awk ilma numbrit või dollarimärki kasutamata.

Allpool on näide.

$ awk 'BEGIN test = "Tere tulemast FossLinuxi suurepärase Linuxi pere" prinditesti "

Näide 8: sisseehitatud funktsioonid

Awk-käsud tulevad kasuks ka nende sisseehitatud funktsioonidega. Näiteks võite kasutada matemaatilisi funktsioone ja ka funktsioone String.

$ awk 'BEGIN x - "fossLinux"; print topper (x) '
$ awk 'BEGIN x = exp (35); print x '

Näide 9: printimise vormindamine

Samuti saate vormindada funktsiooniga printf, mis on kaasas awk-ga. Teil on palju modifikaatoreid, mida saate kasutada. Näiteks võite stringina välja printimiseks kasutada nuppu c; võite kasutada ka d täisarvu väärtuseks jne.

$ awk 'BEGIN x = 200 * 200 printf "Tulemuseks:% e \ n", x'

Näide 10: struktureeritud käsud

Võite kasutada ka struktureeritud käske, näiteks if, else, while või loop jaoks. Vaatame allpool olevat käsu if näidet.

$ awk 'if ($ 1> 20) print $ 2' mynewfile

Järeldus

See viib meid meie awk-käsuõpetuse lõppu. Kas leidsite, et see oli kasulik ja kas kavatsete seda oma töö jaoks kasutada?? Kommenteeri allpool ja anna meile teada.

Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...
WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...
Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...