Linux-ում AWK ծրագրավորման լեզվի ուղեցույց
Ներածություն
AWK-ն սկրիպտավորման լեզու է, որն օգտագործվում է Linux-ում տեքստի մշակման համար: Այն նախագծված է տեքստային ֆայլերում տվյալները շահարկելու համար՝ դարձնելով այն իդեալական գործիք տվյալների վերլուծության և կառավարման առաջադրանքների համար: Ներկառուցված մի շարք գործառույթների և օպերատորների միջոցով AWK-ն կարող է կատարել պարզ որոնում և փոխարինել առաջադրանքները կամ տվյալների բարդ փոխակերպումները: Նրա հակիրճ շարահյուսությունը և բազմակողմանիությունը թույլ են տալիս հեշտությամբ կառավարել տեքստային ֆայլերը: AWK-ն հզոր գործիք է նրանց համար, ովքեր աշխատում են տեքստային ֆայլերով Linux միջավայրերում:
Եկեք տրամադրենք Linux-ի AWK ծրագրավորման լեզվի սկսնակների ուղեցույց: Մենք կանդրադառնանք լեզվի հիմնական շարահյուսությանը, տարբեր տեսակի գործողություններին, որոնք կարող են իրականացվել AWK-ի միջոցով և ինչպես օգտագործել AWK-ն՝ տեքստային ֆայլերը մշակելու համար: Մենք նաև կտրամադրենք ծածկագրի օրինակներ և ելք՝ ծածկված յուրաքանչյուր գործողությունների համար:
AWK-ի տեղադրում Linux օպերացիոն համակարգում
Այն տեղադրելու եղանակներից մեկը մեր Linux բաշխման կողմից տրամադրված փաթեթների կառավարչի օգտագործումն է: Ահա տեղադրման հրամանը −
$ sudo apt-get install gawk
Տեղադրելուց հետո մենք կարող ենք ստուգել AWK-ի տարբերակը Linux-ում −
$ awk --version
Եթե AWK-ն տեղադրված է, հրամանը կցուցադրի տարբերակի համարը:
Փոփոխականներ AWK ծրագրավորման լեզվում
AWK-ն ապահովում է մի շարք ներկառուցված փոփոխականներ, որոնք կարող են օգտագործվել օրինաչափություններում և գործողություններում: Ամենաշատ օգտագործվող փոփոխականներն են −
NR - ներկայացնում է ընթացիկ գրառման (գծի) համարը
NF - ներկայացնում է մուտքագրման գրառման դաշտերի ընդհանուր թիվը:
$0 − Ամբողջ ընթացիկ գրառումը:
$1, $2, $3, … − Առաջին, երկրորդ, երրորդ, … դաշտը ընթացիկ գրառումում:
Բացի այս ներկառուցված փոփոխականներից, AWK-ն թույլ է տալիս նաև օգտագործողի կողմից սահմանված փոփոխականներ: Օգտատիրոջ կողմից սահմանված փոփոխականներին կարելի է արժեքներ վերագրել՝ օգտագործելով=օպերատորը:
AWK հրամանի տողի ընտրանքներ
AWK-ն սովորաբար կանչվում է հրամանի տողից՝ օգտագործելով awk հրամանը, որն ընդունում է տարբեր տարբերակներ և փաստարկներ: Ահա հաճախ օգտագործվող տարբերակների ցանկը −
-F − սահմանում է մուտքային ֆայլերի դաշտերի բաժանարարը:
-v - Սահմանում է արժեք փոփոխականի համար:
-f - սահմանում է AWK սցենարի ֆայլը, որը պետք է կատարվի:
-
-n - անջատում է տողերի ավտոմատ տպագրությունը:
-W - հնարավորություն է տալիս նախազգուշացումները:
Ֆայլից դաշտեր հանելը AWK-ի միջոցով
Ենթադրենք, որ մենք ունենք CSV ֆայլի անվանում «filename.csv» հետևյալ ձևաչափով −
name, age, gender
Papan, 22, Male
Priya, 27, Female
Տարիքի և սեռի դաշտերը հանելու համար մենք կարող ենք օգտագործել հետևյալ հրամանը −
$ awk -F, '{ print $2, $3 }' filename.csv
Այս AWK կոդը կտպագրի CSV ֆայլի երկրորդ և երրորդ դաշտերը (սյունակները), որը կոչվում է «filename.csv», իսկ սահմանազատիչը ստորակետ է («,»):
Ահա բացատրությունը −
«awk» - AWK սկրիպտը գործարկելու համար օգտագործվող հրամանը
‘-F,’ − Այս ընտրանքը դաշտի բաժանարարը դնում է ստորակետի վրա: Սա հրահանգում է AWK-ին վերաբերվել CSV ֆայլին որպես ստորակետներով որպես սահմանազատող դաշտերի միջև:
“ ' { print $2, $3 }' ” − Սա ինքնին AWK սցենարն է: Այն հրահանգում է AWK-ին տպել ֆայլի յուրաքանչյուր տողի երկրորդ և երրորդ դաշտերը՝ բաժանված բացատով:
age gender
22 Male
27 Female
Այս հրամանը սահմանում է դաշտերի բաժանիչը ստորակետով (-F,) և տպում է երկրորդ և երրորդ դաշտերը ($2, $3) ֆայլի յուրաքանչյուր տողի համար:
Տվյալների զտում AWK հրամանի միջոցով
Մենք ունենք «data.txt» անունով ֆայլ, որը պարունակում է տեղեկություններ ուսանողների մասին, ինչպիսիք են նրանց անունը, տարիքը և դասարանը: Մենք ցանկանում ենք զտել միայն «Ա» գնահատական ունեցող ուսանողներին։
Օրինակ
Տեղադրեք ստորև բերված բովանդակությունը «data.txt» ֆայլի վրա −
John, 18, A
Sara, 19, B
Mike, 20, A
Lisa, 18, C
Tom, 19, A
«A» գնահատական ունեցող ուսանողներին զտելու համար մենք կարող ենք օգտագործել հետևյալ AWK հրամանը −
$ awk '$3=="A" {print}' data.txt
Արդյունք
John, 18, A
Mike, 20, A
Tom, 19, A
Ինչպես տեսնում ենք, տպագրվել են միայն «Ա» գնահատական ունեցող տողերը։
Օրինակ
Մենք կարող ենք նաև օգտագործել if հայտարարությունը AWK հրամանում ավելի բարդ ֆիլտրում իրականացնելու համար: Օրինակ, եթե մենք ցանկանում ենք զտել միայն 18 տարեկանից բարձր և «A» գնահատական ունեցող ուսանողներին, կարող ենք օգտագործել հետևյալ AWK հրամանը.
$ awk '$2>18 && $3=="A" {print}' data.txt
Արդյունք
Mike, 20, A
Tom, 19, A
Ինչպես տեսնում ենք, տպագրվել են միայն երկու պայմաններին համապատասխանող տողերը։
Loops-ի ներդրում՝ օգտագործելով AWK հրամանը
Կան 3 հանգույց −
իսկ Loop
do-while Loop
Loop-ի համար
Այստեղ մենք իրականացնում ենք միայն «for loop»:
Նախ պատրաստեք «input.txt» ֆայլ և դրեք ստորև բերված բովանդակությունը
Soumen,25
Bob,30
Papan,22
Aditya,40
Joy,35
Այժմ, եկեք ուսումնասիրենք, թե ինչպես կարող ենք օգտագործել հանգույցները AWK-ում՝ այս ֆայլի տվյալները մշակելու համար:
Ստեղծեք մեկ այլ ֆայլի անուն «program.awk»
Հետևյալ AWK ծրագիրը օգտագործում է for loop՝ ֆայլի յուրաքանչյուր տող տպելու համար
{
for (i = 1; i <= NF; i++) {
printf("%s ", $i);
}
printf("
");
}
Այս ծրագրում նախշը դատարկ է, ինչը նշանակում է, որ գործողությունը կկիրառվի ֆայլի յուրաքանչյուր տողի վրա: Գործողությունը բաղկացած է for օղակից, որը կրկնվում է տողի յուրաքանչյուր դաշտի (սյունակի) վրա՝ օգտագործելով NF (դաշտերի քանակ) փոփոխականը: Շրջանակի ներսում printf ֆունկցիան օգտագործվում է յուրաքանչյուր դաշտը տպելու համար, որին հաջորդում է բացատ: Հանգույցից հետո printf ֆունկցիան կրկին օգտագործվում է նոր տող նիշ տպելու համար:
Այս ծրագիրը գործարկելու համար մենք կարող ենք օգտագործել հետևյալ հրամանը −
$ awk -F, -f program.awk input.txt
Այնտեղ, որտեղ «program.awk»-ը AWK ծրագրի ֆայլի անունն է, իսկ «-F»-ը նշում է, որ դաշտի բաժանիչը ստորակետ է:
Soumen,25
Bob,30
Papan,22
Aditya,40
Joy,35
Մենք կարող ենք տեսնել, որ այն տպում է բոլոր տողերը «input.txt» ֆայլից:
Եզրակացություն
Այս հոդվածը ներկայացնում է AWK ծրագրավորման լեզուն Linux-ում՝ առաջարկելով գործնական կոդի օրինակներ և դրանց համապատասխան ելքը: AWK-ն բարձր արդյունավետ գործիք է տեքստային տվյալների մշակման և դրանցից համապատասխան տեղեկատվություն հանելու համար: Ուղեցույցն ընդգրկում է AWK-ի հիմնական ծրագրավորման հայեցակարգերը, ներառյալ օղակները: Այս գիտելիքներով մենք կհագեցնենք Linux-ում մեր սեփական AWK ծրագրերը ստեղծելու համար: