Syntax:
arrayName [Key] = hodnotaNázev musí deklarovat proměnnou pole. arrayName je zde název pole. Každé pole musí k definování klíč nebo index a bude to jakákoli hodnota řetězce pro asociativní pole. Hodnota může to být jakýkoli znak, číslo nebo řetězec, který se uloží do konkrétního indexu pole.
Příklad 1: Definování a čtení jednorozměrného pole v awk
Jednorozměrné pole může ukládat seznam dat jednoho sloupce. Tento typ pole obsahuje jeden klíč a hodnotu pro každý prvek pole. Toto pole lze použít v příkazu awk jako ostatní programovací jazyky. V tomto příkladu pole s názvem rezervovat je deklarováno třemi prvky a smyčka for se používá ke čtení a tisku každého prvku. Spusťte následující příkaz z terminálu.
$ echo | awk 'BEGIN kniha ["HTML"] = "HTML kapesní průvodce 2010";book ["JS"] = "Efektivní JavaScript";
book ["CSS"] = "Learning Web Design";
END for (i in book) print "The book of", i, "is", book [i]; '
Výstup:
Příklad 2: Definování a čtení dvourozměrného pole v awk
K uložení tabulkového seznamu dat, který obsahuje pevný počet řádků a sloupců, se používá dvourozměrné pole. V tomto příkladu je deklarováno dvourozměrné pole s názvem studenti, které obsahuje tři prvky. Zde se jako klíčové hodnoty pole použije ID a jméno studenta. Stejně jako v předchozím příkladu se ve skriptu awk používá smyčka for-in k tisku hodnot pole. Spusťte následující skript z terminálu.
$ echo | awk 'ZAČÍTstudenti ["87462, Mohammed Ali"] = 87;
studenti ["98376, Sakib Al Hasan"] = 99;
studenti ["79937, Musfikur Rahman"] = 88;
tisk "(ID, jméno) => značky";
END for (i in students) print "(", i, ") =>", studenti [i]; '
Výstup:
Příklad 3: Odstranění prvku pole
Libovolnou hodnotu pole lze odstranit na základě hodnoty klíče. Tady, rezervovat pole se třemi prvky je definováno na začátku skriptu. Dále hodnota klíče HTML je odstraněn pomocí vymazat příkaz. Hodnota prvku HTML klíč je vytištěn před a po vymazat příkaz. Spuštěním následujícího příkazu zkontrolujte výstup.
$ echo | awk 'BEGIN kniha ["HTML"] = "HTML kapesní průvodce 2010";book ["JS"] = "Efektivní JavaScript";
book ["CSS"] = "Learning Web Design";
tisk "Před odstraněním -", kniha ["HTML"];
smazat knihu ["HTML"];
tisk "\ nPo odstranění -", rezervovat ["HTML"]; '
Výstup:
Výstup ukazuje, že hodnota HTML index je po provedení prázdný vymazat příkaz.
Příklad-4: Čtení pole bash v awk
V předchozích příkladech je pole deklarováno v příkazu awk a iterováno smyčkou for-in. Ale můžete si přečíst libovolné pole bash pomocí awk skriptu. V tomto příkladu je pojmenováno pole bash jazyk je deklarován v prvním příkazu. V druhém příkazu jsou hodnoty pole bash předány do příkazu awk, který ukládá všechny prvky do pole awk s názvem awkArray. Hodnoty pole awkArray jsou vytištěny pomocí smyčky for. Spusťte následující příkaz z terminálu a zkontrolujte výstup.
$ lang = ("PHP" "ASP" "JSP" "C #" "C ++")$ printf '% s \ n' "$ lang [@]" | awk 'awkArray [NR] = $ 1 END pro
(i v awkArray) tisk awkArray [i], "\ n"; '
Příklad 5: Načtení obsahu souboru do pole awk
Obsah libovolného souboru lze číst pomocí pole awk. Vytvořte textový soubor s názvem pták.txt s níže uvedeným obsahem.
pták.txt
KoktejlKřepelka
Papoušek šedý
Baazigar
Následující awk skript se používá ke čtení obsahu pták.txt uložte hodnoty do pole, awkArray. smyčka for se používá k analýze pole a tisku hodnot v terminálu. Spusťte následující skript z terminálu.
$ awk 'awkArray [counter ++] = $ 1; END pro (n = 0; nVýstup:
Skript vytiskne obsah pták.txt.
Příklad 6: Odebrání duplicitních záznamů ze souboru
awk skript lze použít k odstranění duplicitních dat z libovolného textového souboru. Vytvořte textový soubor s názvem ovoce.txt s následujícím obsahem. V souboru jsou dvě duplicitní data. Tyto jsou Jablko a oranžový.
ovoce.txt
Jablkooranžový
Hroznová
Jablko
Banán
oranžový
Guava
Následující skript awk přečte každý řádek z textového souboru, ovoce.txt a zkontrolujte, zda aktuální řádek v poli existuje nebo ne, arr. Pokud řádek v poli existuje, neuloží jej do pole a nevytiskne hodnotu v terminálu. Skript tedy uloží do pole a vytiskne pouze jedinečné řádky ze souboru. Spusťte příkazy z terminálu.
$ kočičí ovoce.txt$ awk '!($ 0 in arr) print arr [$ 0], $ 0; ' ovoce.txt
Výstup:
První vytiskne obsah souboru, ovoce.txt a druhý příkaz vytiskne obsah ovoce.txt po vynechání duplicitních řádků ze souboru.
Závěr:
Tento kurz ukazuje různá použití pole ve skriptu awk pomocí různých příkladů s vysvětlením. Bash pole a jakýkoli obsah textového souboru lze také přistupovat pomocí awk pole. Pokud jste v programování awk noví, pak vám tento výukový program pomůže naučit se použití awk pole od základního a budete moci správně používat pole v awk skriptu.