Awk

Cum se folosește tabloul în comanda awk

Cum se folosește tabloul în comanda awk
O variabilă matrice este utilizată pentru a stoca mai multe date. Este suportat de majoritatea limbajelor de programare pentru a stoca mai multe date. O matrice are două părți. Acestea sunt cheia și valoarea. Cheia este utilizată pentru a accesa locația valorii. O matrice poate fi numerică și asociativă. Matricea numerică acceptă doar valoarea numerică ca cheie, iar matricea asociativă acceptă atât valoarea numerică, cât și cea index ca cheie. O matrice asociativă este susținută de comanda awk. Cum puteți defini, accesa sau modifica comanda asociativă în comanda awk este prezentat în acest tutorial utilizând diverse exemple.

Sintaxă:

arrayName [Key] = Valoare

Un nume trebuie să fie declarat pentru variabila matricei. arrayName este numele matricei aici. Fiecare matrice trebuie să utilizeze a treia paranteză pentru a defini cheie sau index și va fi orice valoare șir pentru matricea asociativă. Valoare poate fi orice caracter, număr sau șir care se va stoca în indexul particular al matricei.

Exemplu-1: Definirea și citirea matricei unidimensionale în awk

O matrice unidimensională poate stoca o listă de date cu o singură coloană. Acest tip de matrice conține o singură cheie și o valoare pentru fiecare element de matrice.  Această matrice poate fi utilizată în comanda awk ca și alte limbaje de programare. În acest exemplu, o matrice numită carte este declarat cu trei elemente și pentru buclă este folosit pentru a citi și tipări fiecare element. Rulați următoarea comandă de la terminal.

$ echo | awk 'BEGIN book ["HTML"] = "Ghid HTML de buzunar 2010";
book ["JS"] = "JavaScript eficient";
book ["CSS"] = "Învățare web design";
END for (i in book) print "The book of", i, "is", book [i]; '

Ieșire:

Exemplul-2: Definirea și citirea matricei bidimensionale în awk

O matrice bidimensională este utilizată pentru a stoca lista de date tabulare care conține un număr fix de rânduri și coloane. Matricea bidimensională numită studenți este declarată în acest exemplu care conține trei elemente. Aici, ID-ul și numele studentului sunt utilizate ca valori cheie ale matricei. La fel ca în exemplul anterior, bucla for-in este utilizată în scriptul awk pentru a imprima valorile matricei. Rulați următorul script de la terminal.

$ echo | awk 'BEGIN
studenti ["87462, Mohammed Ali"] = 87;
studenți ["98376, Sakib Al Hasan"] = 99;
studenti ["79937, Musfikur Rahman"] = 88;
print "(ID, Nume) => Marcaje";

END for (i in students) print "(", i, ") =>", studenti [i]; '

Ieșire:

Exemplu-3: Ștergerea elementului matricei

Orice valoare a matricei poate fi ștearsă pe baza valorii cheii. Aici, carte matricea cu trei elemente este definită la începutul scriptului. Apoi, valoarea cheii HTML este șters utilizând șterge comanda. Valoarea elementului HTML tasta este imprimată înainte și după șterge comanda. Rulați următoarea comandă pentru a verifica ieșirea.

$ echo | awk 'BEGIN book ["HTML"] = "Ghid HTML de buzunar 2010";
book ["JS"] = "JavaScript eficient";
book ["CSS"] = "Învățare web design";
tipăriți „Înainte de ștergere -”, carte [„HTML”];
ștergeți cartea ["HTML"];
print "\ nDupă ștergere -", carte ["HTML"]; '

Ieșire:

Rezultatul arată că valoarea HTML indexul este gol după executare șterge comanda.

Exemplu-4: Citirea matricei bash în awk

În exemplele anterioare, matricea este declarată în comanda awk și iterată de bucla for-in.  Dar puteți citi orice matrice bash prin script awk. În acest exemplu, o matrice bash numită lang este declarat în prima comandă. În cea de-a doua comandă, valorile matricei bash sunt trecute în comanda awk care stochează toate elementele într-o matrice awk numită awkArray. Valorile matricei awkArray sunt tipărite folosind bucla for. Rulați următoarea comandă de la terminal pentru a verifica ieșirea.

$ lang = ("PHP" "ASP" "JSP" "C #" "C ++")
$ printf '% s \ n' "$ lang [@]" | awk 'awkArray [NR] = $ 1 END pentru
(i in awkArray) print awkArray [i], "\ n"; '

Exemplul-5: Citirea conținutului fișierului într-o matrice awk

Conținutul oricărui fișier poate fi citit folosind matricea awk. Creați un fișier text numit pasăre.txt cu conținutul dat mai jos.

pasăre.txt

Cocktail
Prepeliţă
Papagal gri
Baazigar

Următorul script awk este utilizat pentru a citi conținutul pasăre.txt înregistrați și stocați valorile în matrice, awkArray. bucla for este utilizată pentru a analiza matricea și a imprima valorile în terminal. Rulați următorul script de la terminal.

$ awk 'awkArray [counter ++] = $ 1; END pentru (n = 0; nprint awkArray [n], "\ n"; 'pasăre.txt

Ieșire:

Scriptul tipărește conținutul pasăre.txt.

Exemplu-6: Eliminarea intrărilor duplicat dintr-un fișier

scriptul awk poate fi folosit pentru a elimina datele duplicate din orice fișier text. Creați un fișier text numit fructe.txt cu următorul conținut. Există două date duplicate în fișier. Acestea sunt măr și portocale.

fructe.txt

măr
portocale
Struguri
măr
Banană
portocale
Guava

Următorul script awk va citi fiecare rând din fișierul text, fructe.txt și verificați dacă linia curentă există sau nu în matrice, arr. Dacă linia există în matrice, atunci nu va stoca linia în matrice și nu va imprima valoarea în terminal. Deci, scriptul va stoca numai liniile unice din fișier în matrice și se va imprima. Rulați comenzile de la terminal.

$ fructe de pisica.txt
$ awk '!($ 0 în ar) print arr [$ 0], $ 0; 'fructe.txt

Ieșire:

Primul va imprima conținutul fișierului, fructe.txt și a doua comandă va imprima conținutul fructelor.txt după omiterea liniilor duplicate din fișier.

Concluzie:

Acest tutorial arată diferitele utilizări ale tabloului în scriptul awk utilizând diferite exemple cu explicații. Matricea Bash și orice conținut al fișierului text poate fi accesat, de asemenea, utilizând matricea awk. Dacă sunteți nou în programarea awk, acest tutorial vă va ajuta să învățați utilizările matricei awk de la bază și veți putea utiliza matricea în scriptul awk în mod corespunzător.

SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...