Uzziniet par Awk: jaudīgākais teksta apstrādes rīks?

Atklāšana: Jūsu atbalsts palīdz vietnei darboties! Mēs nopelnām nodošanas maksu par dažiem pakalpojumiem, kurus mēs iesakām šajā lapā.


Awk ir lielākais teksta apstrādes rīks, par kuru nezinājāt, ka esat vajadzīgs. Bet, ja strādājat ar lielu daudzumu datu, jūs, iespējams, domājāt par šādām lietām: “Būtu tiešām jauki no šīs tabulas izvilkt otro un piekto datu kolonnu.” Un to dara Awk visvienkāršākajā formā.

Maza vēsture

Dienās pirms tam, kad vairums cilvēku zināja, kas ir relāciju datu bāze – un gandrīz divas desmitgades pirms MySQL izstrādes – liels daudzums datu tika glabāts teksta failos. Patiesība ir tāda, ka joprojām tiek glabāts daudz datu. Īpaši tas attiecas uz Unix operētājsistēmām. Piemēram, Unix / etc / passwd fails ir tikai teksta fails ar vienu rindu katram sistēmas lietotājam un katrs lietotāja lauks atdalīts ar kolu. Piemēram:

admin: *: 1001: 2001: Administrators: / home / root: / home / sh
brian: *: 1002: 2002: Brian Kernighan: / mājas / brian: / mājas / bash

Lielajās sistēmās šādos caurlaides failos var būt tūkstošiem rindu. Varat attēlot, ka kādreiz var būt nepieciešams pilns saraksts ar to personu vārdiem, kurām ir konti jūsu datorā. Šajā gadījumā tas būtu 5. lauks. Tātad 1977. gadā trīs programmētāji izveidoja vispārēju programmu, lai to izdarītu. Viņi bija: Alfrēds Aho, Pīters Veinbergers un Braiens Kernigāns. Viņu iniciāļi AWK ir tas, kā Awk ieguva savu vārdu.

Awk piemērs

Pēc noklusējuma Awk pieņem, ka lauki ir atdalīti ar atstarpi. Bet jūs varat norādīt Awk izmantot citu rakstzīmi, izmantojot karodziņu -F (vai – lauka atdalītājs), lai piešķirtu Awk atšķirīgu lauka atdalītāju. / Etc / passwd gadījumā mēs vēlamies izmantot rakstzīmi “:”.

Ņemot vērā atdalītāja rakstzīmi, Awk piešķir pirmo lauku mainīgajam USD 1, otro lauku mainīgajam $ 2 utt. Visa rinda tiek piešķirta USD 0. Ja tas izskatās pazīstams, iespējams, tāpēc, ka šādi Bourne un Bash čaulas skripti pārvalda komandrindas parametrus.

Lai gan Awk skriptus var ievietot failos, tie parasti tiek ievietoti komandrindā kā daļa no Awk komandas. Šeit ir vienkārša awk komanda, kas izvadīs visus kontu un lietotāju vārdus, kas uzskaitīti failā / etc / passwd:

awk -F: ” / etc / passwd

Tādējādi no iepriekšminētā faila / etc / passwd faila tiktu iegūta šāda izvade:

administrators administrators
Braiens Braiens Kernigāns

Šī ir apmēram tikpat vienkārša Awk programma, kāda tā ir. Bet jūs droši vien varat redzēt, ka tas vien ir ļoti spēcīgi. Bieži vien cilvēki šādu failu ievietos izklājlapā, izdzēsīs nevajadzīgās kolonnas un pēc tam rezultātu saglabās kā jaunu teksta failu. Tas ir apgrūtinoši, ja pāris sekunžu laikā varat darīt to pašu ar Awk. Un tas ir tikai sākums. Jūs varat padarīt izvadi nosacītu; jūs varat pilnībā kontrolēt izvadi; ja jums ir darīšana ar skaitliskiem datiem, varat veikt aprēķinus par to; un vēl daudz vairāk.

Awk resursi

Awk ir ļoti viegli iemācīties valodu. Un ir daudz resursu, lai to izdarītu. Mēs apskatīsim dažus zemāk.

Tiešsaistes konsultācijas

Zemāk ir vairākas konsultācijas, kas sākas pašā sākumā un sniedz jums informāciju par vissvarīgākajiem valodas aspektiem. Tas, kurš jums šķiet visnoderīgākais, būs atkarīgs no jums.

  • Grymoire Awk apmācība: šis ir Brūsa Barneta lieliskais ievads Awk. Iepazīstieties ar visām šīm Unix pamācībām.
  • Bieži sastopamie pavedieni: Awk by Example: tas ir izgatavots no IBM un nodrošina nesāpīgu veidu, kā iemācīties Awk. Pēc tam, kad esat ar to galā, noteikti izlasiet 2. daļu.
  • Awk apmācība: tas ir Awk apmācības punkta ievads, kurā jūs pat nokļūsit, lejupielādējot un instalējot to Linux mašīnās..
  • Awk Primer: šī apmācība notiek diezgan ātri, taču, ja jums patīk čaulas skriptēšana vai arī jūs iepriekš esat izmantojis Awk, tā ir laba izvēle.

Grāmatas

Ir vairākas labas grāmatas, kas nodrošina Awk pamatu.

  • Aho un Kernighana Awk programmēšanas valoda: šī ir oriģinālā grāmatas Awk grāmata. Bet atšķirībā no vairuma oriģinālo izstrādātāju grāmatu, šī ir patiešām laba un viegli saprotama.
  • Sed & Dougherty un Robbins Awk: šī ir klasika, kas nodarbojas ar Awk, kā arī straumes redaktoru (sed). Tos abus bieži izmanto kopā. Interesanta ir arī Sed un Awk: Pocket Reference, kad vien jums ir ērtas sistēmas.
  • AWK programmēšana: Džordža Duketa jautājumi un atbildes: šī ir interesanta grāmata Kindle, kas ir vairāk vai mazāk pavārgrāmata. Tas ietver daudz lielisku jautājumu, kas izvērsīs to, kā jūs domājat par Awk, un veidus, kā jūs domājat, ka to var izmantot.
  • Efektīva awk programmēšana: Arnolda Robinsa universālā teksta apstrāde un modeļa saskaņošana: tas ir tāds kā The Awk Programming Lanuage turpinājums. Tas padziļinās valodā un koncentrējas uz Awk, Gawk Gnu versiju.

Neveiksmīgas ieviešanas

Kopš pirmās 1977. gadā ir ieviestas vairākas Awk. Faktiski 1985. gadā (pirms tika publicēta The Awk programmēšanas valoda) Awk tika ievērojami paplašināts. Šī versija bieži tiek saukta par “jauno Awk” vai “nawk”. Pašlaik ir pieejamas dažas populārākas versijas.

  • Gawk: tā ir Gnu projekta Awk ieviešana. Tas ir ārkārtīgi populārs un atbalsta citas valodas labāk nekā citas versijas.
  • BWK: tā ir “viena patiesība Awk”, jo to izmanto The Awk Programming Lanuage. To plaši izmanto FreeBSD.
  • Mawk: šī ir versija, kuru sākotnēji uzrakstījis Maiks Brennans, bet kopš 2009. gada to uztur un atjaunina Tomass Dikijs. Tā koncentrējas uz ātrumu.
  • BusyBox: tas ir vispārējs rīks, kas nodrošina vairākus vienkāršotus Unix rīkus, ieskaitot Awk.

Tiešsaistes forumi

Dažreiz jums vienkārši jāuzdod jautājumi. Un internetā ir ļoti daudz cilvēku, kuri labi pazīst Awk. Šeit ir dažas labākas vietas, kur doties, lai saņemtu atbildes uz jūsu jautājumiem.

  • Comp.lang.awk Google grupa: šis ir samērā aktīvs forums, kuru ir vērts pārbaudīt.
  • Jautājumu par steku pārpildīšanu Awk jautājumi: šī ir lapa ar jaunākajiem jautājumiem, kas tika atzīmēti kā saistīti ar Awk. Tā ir lieliska atsauce un vieta, kur uzdot savus jautājumus.
  • Awk Reddit: tas ir Awk subreddit. Tas nav šausmīgi aktīvs, taču apkārt ir daudz zinošu cilvēku, un tā ir piemērota vieta, kur saņemt atbildes uz jautājumiem.

Kopsavilkums

Awk ir lieliska valoda teksta apstrādei. Un tas var darīt pārsteidzošas lietas, ja vēlaties valodu virzīt pietiekami tālu. Tajā pašā laikā sintakse ir pietiekami vienkārša, ka tā ātri var kļūt par daļu no jūsu darba rīku kopas. Šeit sniegtajiem resursiem jums būs jāsniedz visa nepieciešamā palīdzība.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me