Páni

Jak používat pole v příkazu awk

Jak používat pole v příkazu awk
Proměnná pole se používá k ukládání více než jednoho data. Většina programovacích jazyků podporuje ukládání více dat. Pole má dvě části. Jedná se o klíč a hodnotu. Klíč se používá pro přístup k umístění hodnoty. Pole může být číselné a asociativní. Numerické pole podporuje pouze numerickou hodnotu jako klíč a asociativní pole podporuje numerickou i indexovou hodnotu jako klíč. Asociativní pole je podporováno příkazem awk. Jak můžete definovat, přistupovat nebo upravovat asociativní pole v příkazu awk, je v tomto kurzu ukázáno pomocí různých příkladů.

Syntax:

arrayName [Key] = hodnota

Ná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ČÍT
studenti ["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

Koktejl
Kř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; ntisk awkArray [n], "\ n"; 'pták.txt

Vý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

Jablko
oranž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.

Recenze bezdrátové myši Microsoft Sculpt Touch
Nedávno jsem četl o Microsoft Sculpt Touch bezdrátová myš a rozhodl se ji koupit. Po chvíli používání jsem se rozhodl se s ním podělit o své zkušenost...
Trackpad a ukazatel myši AppyMouse na obrazovce pro tablety Windows
Uživatelé tabletů často postrádají ukazatel myši, zejména když obvykle používají notebooky. Dotykové smartphony a tablety mají mnoho výhod a jediným o...
Střední tlačítko myši nefunguje ve Windows 10
The prostřední tlačítko myši pomáhá procházet dlouhé webové stránky a obrazovky se spoustou dat. Pokud se to zastaví, budete nakonec používat klávesni...