AWK - Diziler

AWK, ilişkilendirilebilir dizilere sahiptir ve bununla ilgili en iyi şeylerden biri - dizinlerin sürekli sayı kümesi olması gerekmez; dizi dizini olarak dizeyi veya sayıyı kullanabilirsiniz. Ayrıca, bir dizinin boyutunu önceden bildirmeye gerek yoktur - diziler çalışma zamanında genişleyebilir / küçülebilir.

Söz dizimi aşağıdaki gibidir -

Sözdizimi

array_name[index] = value

Nerede array_name dizinin adıdır index dizi indeksi ve value dizinin öğesine atanan herhangi bir değerdir.

Dizi Oluşturma

Dizi hakkında daha fazla bilgi edinmek için, bir dizinin öğelerini oluşturalım ve bunlara erişelim.

Misal

[jerry]$ awk 'BEGIN {
   fruits["mango"] = "yellow";
   fruits["orange"] = "orange"
   print fruits["orange"] "\n" fruits["mango"]
}'

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Çıktı

orange
yellow

Yukarıdaki örnekte, diziyi şu şekilde bildiriyoruz: fruitsindeksi meyve adı ve değeri meyvenin rengidir. Dizi elemanlarına erişmek için kullanıyoruzarray_name[index] biçim.

Dizi Öğelerini Silme

Ekleme için atama operatörü kullandık. Benzer şekilde kullanabilirizdeletediziden bir öğeyi kaldırmak için ifade. Delete ifadesinin sözdizimi aşağıdaki gibidir -

Sözdizimi

delete array_name[index]

Aşağıdaki örnek, öğeyi siler orange. Dolayısıyla komut herhangi bir çıktı göstermez.

Misal

[jerry]$ awk 'BEGIN {
   fruits["mango"] = "yellow";
   fruits["orange"] = "orange";
   delete fruits["orange"];
   print fruits["orange"]
}'

Çok Boyutlu diziler

AWK yalnızca tek boyutlu dizileri destekler. Ancak tek boyutlu dizinin kendisini kullanarak çok boyutlu bir diziyi kolayca simüle edebilirsiniz.

Örneğin, aşağıda verilen 3x3 iki boyutlu bir dizidir -

100   200   300
400   500   600
700   800   900

Yukarıdaki örnekte, dizi [0] [0] 100, dizi [0] [1] 200 depolar vb. [0] [0] dizi konumunda 100 depolamak için aşağıdaki sözdizimini kullanabiliriz -

Sözdizimi

array["0,0"] = 100

Biz verdik 0,0indeks olarak bunlar iki indeks değildir. Gerçekte, dizeyle yalnızca bir dizindir0,0.

Aşağıdaki örnek 2 boyutlu bir diziyi simüle eder -

Misal

[jerry]$ awk 'BEGIN {
   array["0,0"] = 100;
   array["0,1"] = 200;
   array["0,2"] = 300;
   array["1,0"] = 400;
   array["1,1"] = 500;
   array["1,2"] = 600;

   # print array elements
   print "array[0,0] = " array["0,0"];
   print "array[0,1] = " array["0,1"];
   print "array[0,2] = " array["0,2"];
   print "array[1,0] = " array["1,0"];
   print "array[1,1] = " array["1,1"];
   print "array[1,2] = " array["1,2"];
}'

Bu kodu çalıştırdığınızda şu sonucu alırsınız -

Çıktı

array[0,0] = 100
array[0,1] = 200
array[0,2] = 300
array[1,0] = 400
array[1,1] = 500
array[1,2] = 600

Bir dizi üzerinde, öğelerini / dizinlerini sıralama gibi çeşitli işlemler de gerçekleştirebilirsiniz. Bu amaçla kullanabilirsinizassort ve asorti fonksiyonlar