Jinsi ya Kuandika Maandishi kwa kutumia Lugha ya Kupanga ya Awk - Sehemu ya 13


Muda wote tangu mwanzo wa mfululizo wa Awk hadi Sehemu ya 12, tumekuwa tukiandika amri na programu ndogo za Awk kwenye mstari wa amri na katika hati za shell mtawalia.

Walakini, Awk, kama vile Shell, pia ni lugha iliyotafsiriwa, kwa hivyo, pamoja na yote ambayo tumepitia tangu mwanzo wa safu hii, sasa unaweza kuandika hati zinazoweza kutekelezwa za Awk.

Sawa na jinsi tunavyoandika hati ya ganda, maandishi ya Awk huanza na mstari:

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

Kwa mfano kwenye mfumo wangu, matumizi ya Awk iko /usr/bin/awk, kwa hivyo, ningeanzisha hati ya Awk kama ifuatavyo:

#! /usr/bin/awk -f 

Kuelezea mstari hapo juu:

  1. #! - inajulikana kama Shebang, ambayo inabainisha mkalimani kwa maagizo katika hati
  2. /usr/bin/awk - ndiye mkalimani
  3. -f - chaguo la mkalimani, linalotumiwa kusoma faili ya programu

Hiyo ilisema, wacha sasa tuzame katika kuangalia mifano kadhaa ya hati zinazoweza kutekelezwa za Awk, tunaweza kuanza na hati rahisi hapa chini. Tumia kihariri chako unachopenda kufungua faili mpya kama ifuatavyo:

$ vi script.awk

Na ubandike nambari iliyo hapa chini kwenye faili:

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

Hifadhi faili na utoke, kisha fanya hati itekelezwe kwa kutoa amri hapa chini:

$ chmod +x script.awk

Baada ya hayo, endesha:

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

Mtayarishaji programu muhimu huko nje lazima awe anauliza, \maoni yako wapi?, ndio, unaweza pia kujumuisha maoni katika hati yako ya Awk. Kuandika maoni katika msimbo wako daima ni mazoezi mazuri ya programu.

Husaidia watayarishaji programu wengine wanaotafuta nambari yako kuelewa unachojaribu kufikia katika kila sehemu ya hati au faili ya programu.

Kwa hivyo, unaweza kujumuisha maoni kwenye hati hapo juu kama ifuatavyo.

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

Ifuatayo, tutaangalia mfano ambapo tunasoma pembejeo kutoka kwa faili. Tunataka kutafuta mtumiaji wa mfumo anayeitwa aaronkilik kwenye faili ya akaunti, /etc/passwd, kisha uchapishe jina la mtumiaji, kitambulisho cha mtumiaji na GID ya mtumiaji kama ifuatavyo:

Chini ni maudhui ya hati yetu inayoitwa 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 }

Hifadhi faili na utoke, fanya hati itekelezwe na utekeleze kama ilivyo hapo chini:

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

Katika mfano wa mwisho hapa chini, tutatumia do while statement kuchapisha nambari kutoka 0-10:

Hapo chini kuna yaliyomo kwenye hati yetu inayoitwa 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)
}

Baada ya kuhifadhi faili, fanya hati itekelezwe kama tulivyofanya hapo awali. Baadaye, iendesha:

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

Muhtasari

Tumefika mwisho wa mfululizo huu wa kuvutia wa Awk, natumai umejifunza mengi kutoka kwa sehemu zote 13, kama utangulizi wa lugha ya programu ya Awk.

Kama nilivyotaja tangu mwanzo, Awk ni lugha kamili ya usindikaji wa maandishi, kwa sababu hiyo, unaweza kujifunza mambo mengine zaidi ya lugha ya programu ya Awk kama vile anuwai za mazingira, safu, kazi (zilizojengwa ndani na mtumiaji hufafanuliwa) na zaidi.

Bado kuna sehemu za ziada za programu ya Awk ya kujifunza na kujua, kwa hivyo, hapa chini, nimetoa viungo vingine vya rasilimali muhimu za mtandaoni ambazo unaweza kutumia kupanua ujuzi wako wa programu ya Awk, haya sio yote unayohitaji, unaweza pia kuangalia. nje kwa ajili ya vitabu muhimu vya programu vya Awk.

Viungo vya Marejeleo: Upangaji Lugha wa AWK

Kwa mawazo yoyote unayotaka kushiriki au maswali, tumia fomu ya maoni hapa chini. Kumbuka kuendelea kushikamana na Tecmint kila wakati kwa mfululizo wa kusisimua zaidi.