Jak używać tablicy w poleceniu AWK

Jak używać tablicy w poleceniu AWK
Zmienna tablicy służy do przechowywania więcej niż jednej danych. Jest obsługiwany przez większość języków programowania do przechowywania wielu danych. Tablica ma dwie części. To są kluczowe i wartość. Klucz służy do dostępu do lokalizacji wartości. Tablica może być numeryczna i asocjacyjna. Tablica numeryczna obsługuje tylko wartość liczbową jako klawisz i tablica asocjacyjna obsługuje zarówno wartość numeryczną, jak i indeksową jako klucz. Tablica asocjacyjna jest obsługiwana przez AWK Command. Jak możesz zdefiniować, uzyskać dostęp lub modyfikować tablicę asocjacyjną w poleceniu AWK, jest pokazany w tym samouczku za pomocą różnych przykładów.

Składnia:

arrayName [klucz] = wartość

Nazwa musi zadeklarować zmienną tablicy. ArrayName to nazwa tablicy tutaj. Każda tablica musi użyć trzeciego wspornika do zdefiniowania klucz Lub indeks i będzie to każda wartość ciągu dla tablicy asocjacyjnej. Wartość może być dowolnym znakiem, liczbą lub ciągiem, które będą przechowywać w określonym indeksie tablicy.

Przykład-1: Definiowanie i czytanie jednowymiarowej tablicy w AWK

Jednowymiarowa tablica może przechowywać listę danych z jednej kolumny. Ten typ tablicy zawiera pojedynczy klucz i wartość dla każdego elementu tablicy. Ta tablica może być używana w poleceniu AWK, jak inne języki programowania. W tym przykładzie wymieniona tablica książka jest zadeklarowane z trzema elementami, a do odczytu i drukowania każdego elementu używane jest. Uruchom następujące polecenie z terminala.

$ echo | AWK 'start Book ["html"] = "HTML Pocket Guide 2010";
książka [„js”] = „Effective JavaScript”;
książka [„css”] = „uczenie się projektowania stron internetowych”;
End for (i in Book) wydrukuj „The Book of”, i, „is”, książka [i]; ''

Wyjście:

Przykład-2: Definiowanie i czytanie dwuwymiarowej tablicy w AWK

Do przechowywania listy danych tabelarycznych, która zawiera stałą liczbę wierszy i kolumn, używana jest dwuwymiarowa tablica. Dwuwymiarowa tablica nazwana studenci jest zadeklarowana w tym przykładzie, który zawiera trzy elementy. Tutaj identyfikator i nazwa ucznia są używane jako kluczowe wartości tablicy. Podobnie jak poprzedni przykład, for-in-in Loop jest używany w skrypcie AWK do wydrukowania wartości tablicy. Uruchom następujący skrypt z terminalu.

$ echo | Awk 'początek
studenci [„87462, Mohammed Ali”] = 87;
Studenci [„98376, Sakib al Hasan”] = 99;
studenci [„79937, Musfikur Rahman”] = 88;
print "(id, nazwa) => marki";

End for (i in Students) print "(", i, ") =>", studenci [i]; '

Wyjście:

Przykład-3: Usuwanie elementu tablicy

Każda wartość tablicy można usunąć na podstawie wartości kluczowej. Tutaj, książka tablica z trzema elementami jest zdefiniowana na początku skryptu. Następnie wartość klucza Html jest usuwany za pomocą usuwać Komenda. Wartość elementu Html Klucz jest drukowany przed i po usuwać Komenda. Uruchom następujące polecenie, aby sprawdzić wyjście.

$ echo | AWK 'start Book ["html"] = "HTML Pocket Guide 2010";
książka [„js”] = „Effective JavaScript”;
książka [„CSS”] = „Uczenie się projektowania stron internetowych”;
Wydrukuj „przed usunięciem -”, książka [„html”];
Usuń książkę [„html”];
wydrukuj „\ nafter delete -”, książka [„html”]; '

Wyjście:

Wyjście pokazuje, że wartość Html Indeks jest pusty po wykonaniu usuwać Komenda.

Przykład-4: Czytanie tablicy bash w AWK

W poprzednich przykładach tablica jest zadeklarowana w poleceniu AWK i iterowana przez For-In Loop. Ale możesz przeczytać dowolną tablicę Bash według skryptu AWK. W tym przykładzie wymieniona tablica bash Lang jest zadeklarowane w pierwszym poleceniu. W drugim poleceniu wartości macierzy bash są przekazywane do polecenia AWK, które przechowuje wszystkie elementy w nazwanej tablicy AWK Awkarray. Wartości tablicy awkarray są drukowane za pomocą pętli. Uruchom następujące polecenie z terminala, aby sprawdzić wyjście.

$ lang = („php” „ASP” „JSP” „C#” „C ++”)
$ printf '%s \ n' "$ lang [@]" | awk 'awkarray [nr] = $ 1 end for for
(I in Awkarray) Drukuj awkarray [i], „\ n”; '

Przykład-5: odczyt treści pliku w tablicy AWK

Treść dowolnego pliku można odczytać za pomocą tablicy AWK. Utwórz plik tekstowy o nazwie ptak.tekst z zawartością podaną poniżej.

ptak.tekst

Koktajl
Przepiórka
Grey Parrot
Baazigar

Do czytania zawartości z zawartości AWK służy do odczytu ptak.tekst Złóż i przechowuj wartości w tablicy, Awkarray. Do parsowania tablicy i wydrukowania wartości w terminalu. Uruchom następujący skrypt z terminalu.

$ awk 'awkarray [Counter ++] = 1 $; End for (n = 0; nwydrukuj awkarray [n], „\ n”; „ptak.tekst

Wyjście:

Skrypt drukuje treść ptak.tekst.

Przykład-6: Usuwanie zduplikowanych wpisów z pliku

Skrypt AWK można użyć do usuwania zduplikowanych danych z dowolnego pliku tekstowego. Utwórz plik tekstowy o nazwie owoce.tekst z następującą treścią. W pliku znajdują się dwa zduplikowane dane. To są Jabłko I Pomarańczowy.

owoce.tekst

Jabłko
Pomarańczowy
Winogrono
Jabłko
Banan
Pomarańczowy
Guawa

Następujący skrypt AWK odczytuje każdy wiersz z pliku tekstowego, owoce.tekst i sprawdź obecną linię istnieje lub nie w tablicy, ARR. Jeśli linia istnieje w tablicy, nie będzie przechowywać linii w tablicy i nie będzie drukować wartości w terminalu. Tak więc skrypt będzie przechowywał tylko unikalne linie z pliku do tablicy i wydruku. Uruchom polecenia z terminala.

$ Cat Fruits.tekst
$ awk '!(0 $ w ARR) print ARR [$ 0], 0 $; owoce.tekst

Wyjście:

Pierwszy wydrukuje zawartość pliku, owoce.TXT i drugie polecenie wydrukują zawartość owoców.TXT po pominięciu zduplikowanych wierszy z pliku.

Wniosek:

Ten samouczek pokazuje różne zastosowania tablicy w skrypcie AWK, używając różnych przykładów z wyjaśnieniem. Dostęp do tablicy Bash i dowolnej zawartości plików tekstowych za pomocą tablicy AWK. Jeśli jesteś nowy w programowaniu AWK, ten samouczek pomoże Ci nauczyć się zastosowań AWK Array z Basic i będziesz mógł prawidłowo używać tablicy w skrypcie AWK.