Sintaks:
arrayName [Key] = NilaiNama mesti dinyatakan untuk pemboleh ubah array. Nama array adalah nama susunan di sini. Setiap array mesti menggunakan kurungan ketiga untuk menentukan kunci atau indeks dan ia akan menjadi nilai rentetan untuk array bersekutu. Nilai boleh berupa watak, nombor atau rentetan yang akan disimpan dalam indeks larik tertentu.
Contoh-1: Mendefinisikan dan membaca susunan satu dimensi dalam awk
Susunan satu dimensi dapat menyimpan senarai data lajur tunggal. Jenis array ini mengandungi satu kunci dan nilai untuk setiap elemen array. Array ini boleh digunakan dalam perintah awk seperti bahasa pengaturcaraan lain. Dalam contoh ini, array dinamakan buku dinyatakan dengan tiga elemen dan untuk gelung digunakan untuk membaca dan mencetak setiap elemen. Jalankan arahan berikut dari terminal.
$ gema | awk 'BEGIN book ["HTML"] = "Panduan Pocket HTML 2010";buku ["JS"] = "JavaScript Berkesan";
buku ["CSS"] = "Pembelajaran Reka Bentuk Web";
TAMAT untuk (saya dalam buku) mencetak "Buku", i, "is", buku [i]; '
Pengeluaran:
Contoh-2: Mendefinisikan dan membaca susunan dua dimensi dalam awk
Susunan dua dimensi digunakan untuk menyimpan senarai data jadual yang mengandungi bilangan baris dan lajur yang tetap. Susunan dua dimensi yang dinamakan pelajar dinyatakan dalam contoh ini yang mengandungi tiga elemen. Di sini, id dan nama pelajar digunakan sebagai nilai utama array. Seperti contoh sebelumnya, for-in loop digunakan dalam skrip awk untuk mencetak nilai array. Jalankan skrip berikut dari terminal.
$ gema | awk 'BEGINpelajar ["87462, Mohammed Ali"] = 87;
pelajar ["98376, Sakib Al Hasan"] = 99;
pelajar ["79937, Musfikur Rahman"] = 88;
cetak "(ID, Nama) => Tanda";
TAMAT untuk (i pada pelajar) cetak "(", i, ") =>", pelajar [i]; '
Pengeluaran:
Contoh-3: Memadamkan elemen array
Sebarang nilai array boleh dihapus berdasarkan nilai utama. Di sini, buku susunan dengan tiga unsur didefinisikan pada awal skrip. Seterusnya, nilai kunci HTML dihapuskan dengan menggunakan padam perintah. Nilai elemen bagi HTML kunci dicetak sebelum dan selepas padam perintah. Jalankan arahan berikut untuk memeriksa output.
$ gema | awk 'BEGIN book ["HTML"] = "Panduan Pocket HTML 2010";buku ["JS"] = "JavaScript Berkesan";
buku ["CSS"] = "Pembelajaran Reka Bentuk Web";
cetak "Sebelum Padam -", tempah ["HTML"];
padamkan buku ["HTML"];
cetak "\ nSelepas Hapus -", tempah ["HTML"]; '
Pengeluaran:
Output menunjukkan bahawa nilai HTML indeks kosong selepas melaksanakan padam perintah.
Contoh-4: Membaca array bash dalam awk
Dalam contoh sebelumnya, susunan dinyatakan dalam perintah awk dan diulang oleh gelung masuk. Tetapi anda boleh membaca sebarang bash array dengan skrip awk. Dalam contoh ini, array bash dinamakan lang dinyatakan dalam perintah pertama. Dalam perintah kedua, nilai array bash diteruskan ke perintah awk yang menyimpan semua elemen ke dalam array awk bernama awkArray. Nilai array awkArray dicetak dengan menggunakan loop. Jalankan arahan berikut dari terminal untuk memeriksa output.
$ lang = ("PHP" "ASP" "JSP" "C #" "C ++")$ printf '% s \ n' "$ lang [@]" | awk 'awkArray [NR] = $ 1 TAMAT untuk
(i dalam awkArray) cetak awkArray [i], "\ n"; '
Contoh-5: Membaca kandungan fail ke dalam array awk
Kandungan fail apa pun boleh dibaca dengan menggunakan array awk. Buat fail teks bernama burung.txt dengan kandungan yang diberikan di bawah.
burung.txt
KoktelPuyuh
Burung Nuri Kelabu
Baazigar
Skrip awk berikut digunakan untuk membaca kandungan burung.txt fail dan simpan nilai dalam tatasusunan, awkArray. untuk gelung digunakan untuk mengurai susunan dan mencetak nilai di terminal. Jalankan skrip berikut dari terminal.
$ awk 'awkArray [kaunter ++] = $ 1; TAMAT untuk (n = 0; nPengeluaran:
Skrip mencetak kandungan burung.txt.
Contoh-6: Mengeluarkan entri pendua dari fail
skrip awk dapat digunakan untuk membuang data pendua dari sebarang fail teks. Buat fail teks bernama buah-buahan.txt dengan kandungan berikut. Terdapat dua data pendua dalam fail. Ini adalah epal dan Jingga.
buah-buahan.txt
epalJingga
Anggur
epal
Pisang
Jingga
Jambu batu
Skrip awk berikut akan membaca setiap baris dari fail teks, buah-buahan.txt dan periksa garis semasa ada atau tidak dalam array, arr. Sekiranya garis itu ada dalam array maka ia tidak akan menyimpan baris dalam array dan tidak akan mencetak nilai di terminal. Jadi, skrip hanya akan menyimpan baris unik dari fail ke dalam array dan dicetak. Jalankan arahan dari terminal.
$ buah-buahan kucing.txt$ awk '!($ 0 dalam arr) print arr [$ 0], $ 0; buah-buahan.txt
Pengeluaran:
Yang pertama akan mencetak kandungan fail, buah-buahan.txt dan arahan kedua akan mencetak isi buah-buahan.txt setelah menghilangkan baris pendua dari fail.
Kesimpulan:
Tutorial ini menunjukkan pelbagai kegunaan susunan dalam skrip awk dengan menggunakan contoh yang berbeza dengan penjelasan. Susunan Bash dan kandungan fail teks apa pun juga dapat diakses dengan menggunakan array awk. Sekiranya anda baru dalam pengaturcaraan awk maka tutorial ini akan membantu anda mempelajari penggunaan array awk dari asas dan anda akan dapat menggunakan array dalam skrip awk dengan betul.