Skriptu rakstīšana, izmantojot Awk programmēšanas valodu - 13. daļa


Kopš Awk sērijas sākuma līdz 12. daļai mēs esam rakstījuši mazas Awk komandas un programmas attiecīgi komandrindā un čaulas skriptos.

Tomēr Awk, tāpat kā Shell, ir arī interpretēta valoda, tāpēc ar visu to, ko esam pārdzīvojuši kopš šīs sērijas sākuma, tagad varat rakstīt Awk izpildāmos skriptus.

Līdzīgi kā mēs rakstām čaulas skriptu, Awk skripti sākas ar līniju:

#! /path/to/awk/utility -f 

Piemēram, manā sistēmā Awk utilīta atrodas mapē/usr/bin/awk, tāpēc es sāktu Awk skriptu šādi:

#! /usr/bin/awk -f 

Izskaidrojot rindiņu iepriekš:

  1. #! - tiek saukts par Shebang, kas norāda tulku skripta instrukcijām
  2. /usr/bin/awk - ir tulks
  3. -f - tulka iespēja, ko izmanto programmas faila lasīšanai

Tas nozīmē, ka tagad apskatīsim dažus Awk izpildāmo skriptu piemērus, mēs varam sākt ar vienkāršo skriptu zemāk. Izmantojiet iecienīto redaktoru, lai atvērtu jaunu failu šādi:

$ vi script.awk

Un ielīmējiet zemāk esošo kodu failā:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Saglabājiet failu un izejiet, pēc tam izveidojiet skriptu izpildāmu, izsniedzot zemāk esošo komandu:

$ chmod +x script.awk

Pēc tam palaidiet to:

$ ./script.awk
Writing my first Awk executable script!

Kritiskam programmētājam tur jājautā: “Kur ir komentāri?”, Jā, komentārus varat iekļaut arī savā Awk skriptā. Komentāru rakstīšana kodā vienmēr ir laba programmēšanas prakse.

Tas palīdz citiem programmētājiem, kuri meklē jūsu kodu, saprast, ko jūs mēģināt sasniegt katrā skripta vai programmas faila sadaļā.

Tādēļ komentārus iepriekš minētajā skriptā varat iekļaut šādi.

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Tālāk mēs aplūkosim piemēru, kurā mēs lasām ievadi no faila. Mēs vēlamies meklēt sistēmas lietotāju ar nosaukumu aaronkilik konta failā/etc/passwd, pēc tam izdrukāt lietotājvārdu, lietotāja ID un lietotāja GID šādi:

Zemāk ir mūsu skripta saturs, ko sauc par second.awk.

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

Saglabājiet failu un izejiet no tā, izveidojiet skriptu izpildāmu un izpildiet to šādi:

$ chmod +x second.awk
$ ./second.awk /etc/passwd
Username : aaronkilik User ID : 1000 User GID : 1000

Pēdējā piemērā zemāk mēs izmantosim paziņojumu do while, lai izdrukātu skaitļus no 0 līdz 10:

Zemāk ir mūsu skripta saturs, ko sauc par do.awk.

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

Pēc faila saglabāšanas izveidojiet skriptu izpildāmu, kā mēs to darījām iepriekš. Pēc tam palaidiet to:

$ chmod +x do.awk
$ ./do.awk
0
1
2
3
4
5
6
7
8
9
10

Kopsavilkums

Mēs esam nonākuši šīs interesantās Awk sērijas beigās, es ceru, ka jūs esat daudz iemācījušies no visām 13 daļām kā ievadu Awk programmēšanas valodai.

Kā jau minēju no paša sākuma, Awk ir pilnīga teksta apstrādes valoda, tāpēc varat uzzināt vairāk citu Awk programmēšanas valodas aspektu, piemēram, vides mainīgos, masīvus, funkcijas (iebūvētas un lietotāja definētas) un citas.

Vēl ir papildu Awk programmēšanas daļas, kuras jāapgūst un jāapgūst, tāpēc zemāk esmu sniedzis dažas saites uz svarīgiem tiešsaistes resursiem, kurus varat izmantot, lai paplašinātu savas Awk programmēšanas prasmes. Tie nav obligāti visi nepieciešamie, varat arī apskatīt pieejams noderīgām Awk programmēšanas grāmatām.

Atsauces saites: AWK valodas programmēšana

Visām domām, par kurām vēlaties dalīties, vai jautājumiem, izmantojiet zemāk esošo komentāru veidlapu. Atcerieties, lai vienmēr būtu savienots ar Tecmint, lai iegūtu aizraujošākas sērijas.