Како да пишувате скрипти користејќи Awk програмски јазик - Дел 13
Цело време од почетокот на серијата Awk до дел 12, пишувавме мали команди и програми на Awk на командната линија и во скрипти на школка, соодветно.
Сепак, Awk, исто како и Shell, е исто така интерпретиран јазик, затоа, со сето она што го поминавме од почетокот на оваа серија, сега можете да пишувате извршни скрипти за Awk.
Слично на тоа како пишуваме скрипта за школка, скриптите на Awk започнуваат со линијата:
#! /path/to/awk/utility -f
На пример, на мојот систем, алатката Awk се наоѓа во /usr/bin/awk, затоа, би започнал скрипта Awk на следниов начин:
#! /usr/bin/awk -f
Објаснување на линијата погоре:
#!
– се нарекува Шебанг, што одредува преведувач за инструкциите во скрипта/usr/bin/awk
– е толкувачот-f
– опција за преведувач, која се користи за читање програмска датотека
Како што рече, ајде сега да разгледаме неколку примери на извршни скрипти на Awk, можеме да започнеме со едноставната скрипта подолу. Користете го вашиот омилен уредувач за да отворите нова датотека на следниов начин:
$ vi script.awk
И залепете го кодот подолу во датотеката:
#!/usr/bin/awk -f
BEGIN { printf "%s\n","Writing my first Awk executable script!" }
Зачувајте ја датотеката и излезете, а потоа направете ја скриптата извршна со издавање на командата подолу:
$ chmod +x script.awk
Потоа, стартувајте го:
$ ./script.awk
Writing my first Awk executable script!
Критичкиот програмер таму мора да прашува: „Каде се коментарите?“, да, можете исто така да вклучите коментари во вашата скрипта Awk. Пишувањето коментари во вашиот код е секогаш добра програмска пракса.
Тоа им помага на другите програмери кои го разгледуваат вашиот код за да разберат што се обидувате да постигнете во секој дел од скриптата или програмската датотека.
Затоа, можете да вклучите коментари во сценариото погоре на следниов начин.
#!/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!" }
Следно, ќе погледнеме пример каде што читаме влез од датотека. Сакаме да бараме системски корисник со име aaronkilik во датотеката на сметката, /etc/passwd, а потоа да ги испечатиме корисничкото име, корисничкиот ID и корисничкиот GID на следниов начин:
Подолу е содржината на нашата скрипта наречена 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 }
Зачувајте ја датотеката и излезете, направете ја скриптата извршна и извршете ја како подолу:
$ chmod +x second.awk
$ ./second.awk /etc/passwd
Username : aaronkilik User ID : 1000 User GID : 1000
Во последниот пример подолу, ќе ја користиме изјавата do while за да ги испечатиме броевите од 0-10:
Подолу е содржината на нашата скрипта наречена 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)
}
Откако ќе ја зачувате датотеката, направете ја скриптата извршна како што направивме претходно. После тоа, стартувајте го:
$ chmod +x do.awk
$ ./do.awk
0
1
2
3
4
5
6
7
8
9
10
Резиме
Дојдовме до крајот на оваа интересна серија Awk, се надевам дека научивте многу од сите 13 делови, како вовед во програмскиот јазик Awk.
Како што спомнав од самиот почеток, Awk е комплетен јазик за обработка на текст, поради таа причина, можете да научите повеќе други аспекти на програмскиот јазик Awk како што се променливите на животната средина, низите, функциите (вградени и дефинирани од корисникот) и пошироко.
Има уште дополнителни делови од програмирањето Awk за учење и совладување, така што, подолу, дадов неколку врски до важни онлајн ресурси кои можете да ги користите за да ги проширите вашите вештини за програмирање Awk, тоа не е нужно сè што ви треба, можете исто така да погледнете за корисни книги за програмирање Awk.
Референтни врски: AWK јазично програмирање
За какви било мисли што сакате да ги споделите или прашања, користете го формуларот за коментари подолу. Не заборавајте да останете секогаш поврзани со Tecmint за повозбудливи серии.