Bii o ṣe le Kọ Awọn iwe afọwọkọ Lilo Ero siseto Awk - Apakan 13


Ni gbogbo igba lati ibẹrẹ ti Awk jara titi de Apakan 12, a ti nkọ awọn ofin Awk kekere ati awọn eto lori laini aṣẹ ati ni awọn iwe afọwọkọ ikarahun lẹsẹsẹ.

Sibẹsibẹ, Awk, gẹgẹ bi Ikarahun, tun jẹ ede ti o tumọ, nitorinaa, pẹlu gbogbo ohun ti a ti kọja lati ibẹrẹ jara yii, o le kọ awọn iwe afọwọkọ Awk ti a le mu ṣiṣẹ ni bayi.

Bii si bi a ṣe kọ iwe-iwe ikarahun kan, awọn iwe afọwọkọ Awk bẹrẹ pẹlu laini:

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

Fun apẹẹrẹ lori eto mi, ohun elo Awk wa ni/usr/bin/awk, nitorinaa, Emi yoo bẹrẹ iwe afọwọkọ Awk gẹgẹbi atẹle:

#! /usr/bin/awk -f 

Ti n ṣalaye laini loke:

  1. #! - tọka si bi Shebang, eyiti o ṣe alaye onitumọ fun awọn itọnisọna ninu iwe afọwọkọ kan
  2. /usr/bin/awk - ni onitumọ naa
  3. -f - aṣayan onitumọ, ti a lo lati ka faili eto kan

Ti o sọ pe, jẹ ki a wa bayi lati wo awọn apẹẹrẹ diẹ ninu awọn iwe afọwọkọ ti a le mu ṣiṣẹ Awk, a le bẹrẹ pẹlu iwe afọwọkọ ti o rọrun ni isalẹ. Lo olootu ayanfẹ rẹ lati ṣii faili tuntun bi atẹle:

$ vi script.awk

Ati lẹẹ koodu ti o wa ni isalẹ ninu faili naa:

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

Fipamọ faili naa ki o jade, lẹhinna ṣe iwe afọwọkọ ni ṣiṣe nipasẹ ipinfunni aṣẹ ni isalẹ:

$ chmod +x script.awk

Lẹhinna, ṣiṣe rẹ:

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

Olukọni ti o ṣe pataki ni ita gbọdọ wa ni bibeere,\"nibo ni awọn asọye wa?", Bẹẹni, o tun le ṣafikun awọn asọye ninu iwe afọwọkọ Awk rẹ. Kikọ awọn asọye ninu koodu rẹ nigbagbogbo jẹ iṣe siseto to dara.

O ṣe iranlọwọ fun awọn oluṣeto eto miiran ti n wa nipasẹ koodu rẹ lati ni oye ohun ti o n gbiyanju lati ṣaṣeyọri ni apakan kọọkan ti iwe afọwọkọ tabi faili eto.

Nitorinaa, o le pẹlu awọn asọye ninu iwe afọwọkọ loke bi atẹle.

#!/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!" }

Nigbamii ti, a yoo wo apẹẹrẹ nibiti a ti ka kikọ sii lati faili kan. A fẹ lati wa olumulo olumulo ti a npè ni aaronkilik ninu faili akọọlẹ naa,/ati be be lo/passwd, lẹhinna tẹ orukọ olumulo, ID olumulo ati GID olumulo bii atẹle:

Ni isalẹ ni akoonu ti iwe afọwọkọ wa ti a pe ni keji.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 }

Fipamọ faili naa ki o jade, jẹ ki iwe afọwọkọ ṣiṣẹ ki o ṣiṣẹ bi isalẹ:

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

Ninu apẹẹrẹ ti o kẹhin ni isalẹ, a yoo lo ṣe lakoko alaye lati tẹ awọn nọmba jade lati 0-10:

Ni isalẹ ni akoonu ti iwe afọwọkọ wa ti a pe ni 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)
}

Lẹhin fifipamọ faili naa, jẹ ki iwe afọwọkọ ṣiṣẹ bi a ti ṣe tẹlẹ. Lẹhinna, ṣiṣe rẹ:

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

Akopọ

A ti de opin ti jara Awk ti o nifẹ si yii, Mo nireti pe o ti kọ ẹkọ pupọ lati gbogbo awọn ẹya 13, bi ifihan si ede siseto Awk.

Gẹgẹbi Mo ti mẹnuba lati ibẹrẹ, Awk jẹ ede ti n ṣatunṣe ọrọ pipe, fun idi naa, o le kọ diẹ sii awọn ẹya miiran ti ede siseto Awk gẹgẹbi awọn oniyipada ayika, awọn eto, awọn iṣẹ (itumọ-ni & olumulo ti ṣalaye) ati kọja.

Awọn ẹya afikun si tun wa ti siseto Awk lati kọ ẹkọ ati ṣakoso, nitorinaa, ni isalẹ, Mo ti pese diẹ ninu awọn ọna asopọ si awọn orisun ayelujara pataki ti o le lo lati faagun awọn ọgbọn siseto Awk rẹ, iwọnyi kii ṣe dandan gbogbo nkan ti o nilo, o tun le wo jade fun awọn iwe siseto Awk ti o wulo.

Awọn ọna asopọ Itọkasi: siseto Ede AWK

Fun eyikeyi awọn ero ti o fẹ lati pin tabi awọn ibeere, lo fọọmu asọye ni isalẹ. Ranti lati wa nigbagbogbo ni asopọ si Tecmint fun jara onitumọ diẹ sii.