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