Uzziniet Linux

Linux awk komanda ar 10 piemēriem

Linux awk komanda ar 10 piemēriem

Datorsistēmas vienmēr ir izmantotas, lai analizētu vērtīgus datus, kas saglabāti vienkāršos teksta failos. Savukārt pašas datorsistēmas tiek pārvaldītas, izmantojot žurnālfailus. Šajās divās situācijās potenciāli ir kopīgi tas, ka tajās ir liels datu daudzums, kas pirms datu reālas lasīšanas bieži vien ir jāvienkāršo; pretējā gadījumā tas ir tikai mulsinoši.

Piemēram, ja jūs lasāt dažus datus, kas sakārtoti tabulas formā, vēlaties dažas kolonnas, citas nevēlaties.

Šī prasība bija briesmīga pat dienas laikā, un līdz ar to GNU projektā ir pārsteidzošs rīks, kas lietotājiem palīdz filtrēt un iegūt datus, lai iegūtu labāku pieredzi. Šis rīks ir AWK.

Vēsture

AWK faktiski ir programmēšanas valoda, kas ir veltīta teksta apstrādei. To izmanto datu iegūšanai īpašos modeļos. Septiņdesmitajos gados to izstrādāja Bell Labs, Alfred Aho, Peter Weinberger un Brian Kernighan (viņu uzvārdu iniciāļi deva vārdu). Ar to awk attīstība neapstājās. 1985. gadā tika ieviesta jauna versija, kas awk komandā ieviesa jaunas izmaiņas, tostarp iespēju apstrādāt vairākas ievades straumes, aprēķinātas regulāras izteiksmes, lietotāja definētas funkcijas un daudz ko citu! Īsāk sakot, atjauninājums padarīja to par jaudīgāku programmēšanas valodu.

Awk ir atšķirīga ieviešana. Lai nodrošinātu pareizu ieviešanu, kas piedāvā standarta pieeju, Pols Rubins 1986. gadā rakstīja gawk. Tas labi strādāja ar jaunāko awk.

Bez tam 1989. gada System V laidienā tika pievienotas jaunas funkcijas. Izstrādātāji arī uzlaboja tā tumšos stūrus, padarot programmētājus un lietotājus labākus to izmantot. Jaunākās izmaiņas notika 1997. gadā, kad awk redzēja piekļuvi tīklam - nodrošinot lietotājiem iespēju attālināti risināt problēmas.

Pēdējā pārrakstīšana tika veikta 2011. gadā, kad Džons Haque pārrakstīja gawk iekšējās daļas.

Lietas, ko varat darīt ar AWK

Pašlaik vajadzētu būt nedaudz skaidram, ko AWK spēj. Tā ir vispārējas nozīmes skriptu valoda, kas ļauj apstrādāt teksta apstrādi. Pieredzējuši lietotāji to var izmantot arī analīzei un ziņošanai.

AWK nav līdzīga citām programmēšanas valodām, jo ​​tā ir balstīta uz datiem, nevis procesuāla programmēšanas valoda. Tas nozīmē, ka to var efektīvi izmantot, lai veiktu darbības pret teksta ievadi. Īsāk sakot, jūs varat to izmantot, lai pārveidotu datus, tos ievadītu un arī nosūtītu kā standarta izvadi.

Īsāk sakot, jūs varat izmantot AWK, lai veiktu vienkāršas darbības, piemēram, katras ievades rindas sadalīšanu laukos, faila skenēšanu pa rindai, spēles (-u) izpildi spēles līnijās utt! Komanda awk ir noderīga arī procedūras formatētiem pārskatiem un pārveido datu failus. Turklāt jūs arī iegūstat piekļuvi programmēšanas konstrukcijām, piemēram, nosacītām un cilpām, virkņu un aritmētiskām operācijām un izejas rindiņu formatēšanai.

Kā darbojas awk

Šajā sadaļā mēs uzzināsim, kā darbojas awk. Ir svarīgi uzzināt, ka awk ir atšķirīgs ieviešanas veids. Lai nodrošinātu, ka atrodamies vienā lapā, mēs apspriedīsim un izmantosim GNU ieviešanu - kas tautā tiek dēvēts par gawk. Vairumā gadījumu gawk ir saistīts ar awk tulku.

Lai iegūtu labu izpratni, mums vispirms ir jāsaprot ieraksti un lauki.

Ir labi zināms, ka awk var apstrādāt teksta straumes un datu failus. Lai apstrādātu datus, ievade tiek sadalīta laukos un ierakstos. Lai nodrošinātu, ka awk neapgrūtina, vienā brīdī tiek apstrādāts viens ieraksts, līdz tiek sasniegts ievades beigas. Turklāt ieraksti tiek tālāk sadalīti vienkāršās sadaļās, izmantojot ierakstu atdalītāju, izmantojot rakstzīmes. Katrs ieraksts tiek atdalīts, izmantojot jaunas rindas rakstzīmes. Tas nozīmē, ka katru rindu var nosaukt par ierakstu.

Jūs varat izvēlēties iestatīt jaunu ierakstu atdalītāju, izmantojot RS mainīgo.

Tālāk nāk iesniegtais atdalītājs. Kā parasti, katram ierakstam ir lauki, un tie tiek atdalīti, izmantojot lauku atdalītāju. Lauka atdalītājs var būt atstarpe, cilnes, jaunas rindas rakstzīmes un atstarpe. Katram laukam ir atsauce, izmantojot simbolu $, savukārt lauka numurs sākas ar 1. Tas nozīmē, ka pirmo lauku var apzīmēt kā $ 1, savukārt otro lauku - kā $ 2. Tādā veidā n-to lauku var apzīmēt kā $ nf.

AWK programma

Otrais awk aspekts ir awk programma. Ja vēlaties strādāt ar awk, jums jāuzraksta programma, kas komandai ļauj izpildīt vai apstrādāt tekstu. Programma awk piedāvā daudz funkcionalitātes, izmantojot kārtulas un lietotāja definētas funkcijas. Noteikumi darbojas ar darbību pāri vai vienu modeli, un noteikumi tiek atdalīti, izmantojot semikolu vai newline.

Gadījumā, ja jūs domājat, awk programma izskatīsies zemāk.

modelis darbība modelis darbība… 

Īsāk sakot, awk programma darbojas pēc atbilstības ierakstiem, pamatojoties uz modeļiem. Ja modelis tiek atrasts ierakstā, tas to apstrādās. Ja nē, tad viss ieraksts tiek saskaņots, lai pārliecinātos, ka kaut kas atbilst, pamatojoties uz noteikumiem.

awk komandu piemēri

Tagad, kad mums ir laba izpratne par komandu awk un kā tā darbojas, mums ir pienācis laiks pārbaudīt dažus awk komandu piemērus.

Ja jūs nekad iepriekš neesat lietojis awk, ieteicams uzzināt, ka awk var izmantot ar šādām opcijām:

awk opcijas programmas fails

Iespējas, kuras varat izmantot ar awk, ir šādas:

1. piemērs: lasiet AWK skriptus

Viens no visizplatītākajiem awk izmantošanas veidiem ir skriptu lasīšana. Kā Linux lietotājs varat izveidot awk skriptu, izmantojot vienpēdiņas.

Lai to izdarītu, terminālā ir jāievada šāda komanda.

$ awk 'print "Laipni lūdzam sveiki, pasaule - AWK apmācība"'

Iepriekš redzamajā piemērā ievadītais tiks atgriezts pašā ekrānā. Komanda turpinās izpildīt, līdz to beigsit, nospiežot CTRL + D.

2. piemērs: Vairāku komandu izmantošana

Vēl viena izplatīta awk izmantošana ir vairāku komandu izmantošana. Kā lietotājs, iespējams, vēlēsities apvienot divas awk komandas vienā, lai iegūtu vēlamo rezultātu. Šajā piemērā mēs izvadīsim virkni un pēc tam aizstāsim otro vārdu virknē ar jaunu ievadi.

$ echo "Sveika pasaule" | awk '$ 2 = "Visums; izdrukāt $ 0"'

Iepriekš minētajā piemērā mēs vispirms atkārtojām terminālu “Hello, World”. Pēc tam mēs sasaistījām vēl vienu komandu awk, kur mēs aizstājām otro vārdu ar Visumu - un pēc tam beidzot izlaidām virkni, kas ir Hello Universe.

3. piemērs: Mainīgā izmantošana

Mainīgie ļauj saglabāt informāciju un piekļūt tai. Ja iepriekš esat izmantojis programmēšanas valodas, jūs noteikti zināt par tām. Awk gadījumā jūs to izmantojat, lai apstrādātu teksta failus. Izmantojot mainīgos, failā varat piekļūt noteiktiem datu laukiem tāpat kā zemāk.

Šim nolūkam mēs izveidojām jaunu teksta failu mynewfile, kur mēs ievadām dažas nejaušas, bet skaistas līnijas.

Pēc tam jums jāpalaiž komanda, kā parādīts zemāk.

awk 'print $ 1' mynewile

Kā redzat, tas izvada konkrēto mainīgo, kas parāda šo lauku no faila. Jums vajadzētu redzēt arī kļūdu, kuru es pieļāvu.

4. piemērs: AWK pirmapstrāde

Izmantojot komandu awk, varat pievienot priekšapstrādi. Lai to izdarītu, jums jāizmanto BEGIN atslēgvārds.

Ja lasāt uzmanīgi, mēs iepriekš izveidojām jaunu failu. Mēģināsim izmantot awk pirmapstrādi, lai parādītu faila saturu.

Komanda tam ir šāda.

awk 'awk BEGIN print "Faila saturs:"> print $ 0', mynewfile

Iepriekš redzamais ekrānuzņēmuma piemērs nav pareizs. Es izmantoju “Begin”, nevis “BEGIN”, tāpēc jūs neredzat, ka izdrukātais paziņojums tiek izpildīts. Atstāju to, lai jūs varētu izmēģināt un uzzināt, kā iet jūsu rezultāts!

5. piemērs: skripta lasīšana no faila

Šis ir grūts. Šeit faila lasīšanai varat izmantot awk skriptu.

Mēs izveidojam jaunu skriptu, kas satur sekojošo.

print $ 1 "Visums sākas ar" $ 6 "

Mēs saglabājām failu kā avīžu rakstu.

Tagad terminālā palaidiet šādu komandu.

$ awk -F: -f avīžu raksts / etc / passwd

Aizraujoši, pareizi!

6. piemērs: AWK pēcapstrāde

Tālāk mēs apskatīsim AWK pēcapstrādi. Tas darbojas līdzīgi kā iepriekšēja apstrāde, taču šoreiz pēcapstrādē tiek izmantota komanda END.

$ awk 'BEGIN print "Faila saturs sākas tūlīt:">> print $ 0>> END print "print" Fails beidzas "' mynewfile

7. piemērs: lietotāja definēti mainīgie

Mainīgos var izmantot arī komandā awk, neizmantojot ciparu vai dolāra zīmi.

Zemāk ir piemērs.

$ awk 'BEGIN test = "Laipni lūdzam FossLinux Awesome Linux Family" drukas testā'

8. piemērs: iebūvētās funkcijas

AWK komandas ir noderīgas arī ar to iebūvētajām funkcijām. Piemēram, varat izmantot matemātiskās funkcijas un arī virknes funkcijas.

$ awk 'BEGIN x - "fossLinux"; print toupper (x) '
$ awk 'BEGIN x = exp (35); izdrukāt x '

9. piemērs: Drukāšanas formatēšana

Varat arī formatēt funkciju printf, kas nāk ar awk. Varat izmantot daudz modifikatoru. Piemēram, jūs varat izmantot c, lai izdrukātu kā virkni; jūs varat arī izmantot d vesela skaitļa vērtībai utt.

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

10. piemērs: strukturētas komandas

Varat arī izmantot strukturētas komandas, piemēram, if, else, while vai ciklam. Apskatīsim zemāk esošo komandu if piemēru.

$ awk 'if ($ 1> 20) drukāt $ 2' mynewile

Secinājums

Tas mūs noved pie mūsu awk komandu apmācības beigām. Tātad, vai tas jums šķita noderīgs un vai izmantosiet to savam darbam? Komentējiet zemāk un informējiet mūs.

Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...
Kā lejupielādēt un atskaņot Sid Meier Civilization VI operētājsistēmā Linux
Ievads spēlē Civilization 6 ir mūsdienīga klasiskā koncepcija, kas ieviesta Age of Empires spēļu sērijā. Ideja bija diezgan vienkārša; jūs sāktu pašā ...