Awk programmirleme dilini ulanyp skriptleri nädip ýazmaly - 13-nji bölüm


“Awk” seriýasynyň başyndan 12-nji bölüme çenli, buýruk setirinde we gabyk skriptlerinde kiçi Awk buýruklaryny we programmalaryny ýazýarys.

Şeýle-de bolsa, Awk, edil Shell ýaly terjime edilen dil, şonuň üçin bu seriýanyň başyndan başlap başdan geçirenlerimiz bilen, Awk ýerine ýetirip boljak skriptleri ýazyp bilersiňiz.

Gabyk skriptini nädip ýazýandygymyz ýaly, Awk skriptleri setirden başlaýar:

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

Mysal üçin, ulgamymda Awk kömekçi enjamy/usr/bin/awk-da ýerleşýär, şonuň üçin Awk skriptini aşakdaky ýaly başlardym:

#! /usr/bin/awk -f 

Aboveokardaky setiri düşündirmek:

  1. #! - skriptdäki görkezmeler üçin terjimeçini kesgitleýän Shebang diýilýär.
  2. /usr/bin/awk - terjimeçi
  3. -f - programma faýlyny okamak üçin ulanylýan terjimeçi opsiýasy

Saidagny, indi Awk ýerine ýetirip boljak skriptleriň käbir mysallaryna göz aýlalyň, aşakdaky ýönekeý skriptden başlap bileris. Täze faýl açmak üçin halaýan redaktoryňyzy ulanyň:

$ vi script.awk

Aşakdaky kody faýla goýuň:

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

Faýly ýazdyryň we çykyň, soňra aşakdaky buýrugy bermek bilen skripti ýerine ýetirip bilersiňiz:

$ chmod +x script.awk

Ondan soň işlediň:

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

Şol ýerdäki tankydy programmist, teswirler nirede? Diýip soramaly, hawa, teswirleri Awk skriptiňize hem goşup bilersiňiz. Koduňyza teswir ýazmak elmydama gowy programmirleme.

Koduňyza seredýän beýleki programmistlere skript ýa-da programma faýlynyň her bölüminde näme gazanjak bolýandygyňyza düşünmäge kömek edýär.

Şonuň üçin ýokardaky ýazgyda düşündirişleri aşakdaky ýaly goşup bilersiňiz.

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

Soň bolsa, bir faýldan giriş okaýan bir mysalymyza serederis. Hasap faýlynda/etc/passwd-da aaronkilik atly ulgam ulanyjysyny gözlemek, soňra ulanyjy adyny, ulanyjy şahsyýetini we ulanyjy GID-i aşakdaky ýaly çap etmek isleýäris:

Aşakda second.awk atly skriptimiziň mazmuny bar.

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

Faýly ýazdyryň we çykyň, skripti ýerine ýetirip we aşakdaky ýaly ýerine ýetiriň:

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

Aşakdaky soňky mysalda, 0-10-dan sanlary çap etmek üçin jümläni ulanarys:

Aşakda do.awk atly skriptimiziň mazmuny.

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

Faýly ýazdyranyňyzdan soň, skripti öňküsi ýaly ýerine ýetirip bilersiňiz. Ondan soň işlediň:

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

Gysgaça mazmun

Bu gyzykly Awk seriýasynyň soňuna geldik, Awk programmirleme diline giriş hökmünde 13 bölümden köp zat öwrendiňiz diýip umyt edýärin.

Başda belläp geçişim ýaly, Awk teksti gaýtadan işlemegiň doly dilidir, şonuň üçin Awk programmirleme diliniň daşky gurşaw üýtgeýjileri, massiwleri, funksiýalary (gurlan we ulanyjy kesgitlenen) we beýlekiler ýaly has köp taraplaryny öwrenip bilersiňiz.

Öwrenmek we öwrenmek üçin Awk programmirlemesiniň goşmaça bölekleri bar, şonuň üçin aşakda, Awk programmirleme endikleriňizi giňeltmek üçin ulanyp boljak möhüm onlaýn çeşmelere käbir baglanyşyklar berdim, bular hökman size zerur zat däl, seredip bilersiňiz peýdaly Awk programmirleme kitaplary üçin.

Salgylanma baglanyşyklary: AWK dil programmirlemesi

Paýlaşmak isleýän pikirleriňiz ýa-da soraglaryňyz üçin aşakdaky düşündiriş formuny ulanyň. Has gyzykly seriýalar üçin hemişe Tecmint-e birikmegi ýatdan çykarmaň.