awk

Cara menggunakan for loop dalam perintah awk

Cara menggunakan for loop dalam perintah awk
Loop digunakan untuk mengeksekusi beberapa pernyataan beberapa kali. Iterasi loop berdasarkan kondisi terminasi atau jumlah elemen array. Tiga jenis loop didukung oleh bahasa pemrograman apa pun. Untuk loop adalah salah satunya. Untuk loop dapat dideklarasikan dengan dua cara. Sederhana untuk loop berisi tiga bagian.  Dan loop for lainnya adalah loop for-in yang digunakan untuk mengulangi daftar data atau array apa pun. Tutorial ini menunjukkan penggunaan kedua jenis loop ini dalam perintah awk dengan menggunakan berbagai contoh.

Sintaksis:

  1. untuk deklarasi loop:
for (inisialisasi; kondisi terminasi; kenaikan/penurunan)
pernyataan

Bagian pertama digunakan untuk menginisialisasi variabel untuk memulai untuk lingkaran. Bagian kedua berisi kondisi terminasi untuk mengontrol iterasi dari loop dan loop akan berlanjut sampai kondisi benar. Bagian terakhir akan menambah atau mengurangi variabel inisialisasi berdasarkan bagian pertama.

  1. deklarasi masuk
for (variabel dalam array/daftar)
pernyataan

untuk-dalam loop digunakan untuk melakukan tugas-tugas di mana jumlah iterasi dari loop tidak tetap. untuk-dalam loop terutama digunakan untuk mengurai array atau daftar data. Loop membaca setiap data dari array atau daftar dan menyimpan nilai ke variabel di setiap iterasi.

Contoh-1: Menggunakan loop for sederhana

Perulangan for sederhana digunakan dalam skrip berikut:. Sini, melawan variabel diinisialisasi oleh 10 dan loop akan berakhir ketika nilai melawan kurang dari 5. Script akan mencetak melawan nilai dari 10 hingga 5. Jalankan perintah dari terminal.

$ gema | awk ' for (penghitung = 10; penghitung >= 5; penghitung--)
print "Berjalan untuk ", penghitung, " kali.","\n"; '

Keluaran:

Output berikut akan muncul setelah menjalankan perintah:.

Contoh-2: Menggunakan loop for-in untuk membaca array

Sebuah array bernama Pelanggan dideklarasikan dalam skrip berikut di mana pelanggan Indo ditetapkan sebagai indeks array dan indeks pelanggan nama ditetapkan sebagai nilai array. untuk-dalam loop digunakan di sini untuk mengulangi setiap indeks dari array dan mencetak nama pelanggan. Jalankan skrip dari terminal.

$ gema | awk 'BEGIN Pelanggan["4587"] = "Neil Johnson";
Pelanggan["8953"] = "Ella binte Nazir";
Pelanggan["3455"] = "Bruce Hyslop";
Pelanggan["6335"] = "Isabella";
 
AKHIR untuk (i di Pelanggan)
print  "Nama ", i, " adalah " ,Pelanggan[i]
'

Keluaran:

Output berikut akan muncul setelah menjalankan skrip:.

Contoh-3: Menggunakan loop for bersarang

Ketika sebuah for loop dideklarasikan di bawah for loop yang lain maka itu disebut nested for loop. Loop luar yang digunakan dalam skrip ini akan berulang sebanyak 2 kali dan loop dalam akan berulang sebanyak 3 kali. Jadi, pernyataan cetak akan dijalankan selama, (2X3=6) 6 kali. Jalankan skrip dari terminal.

$ gema | awk 'AKHIR untuk (i=1; i<=2; i++)
untuk (j=1; j<=3; j++)
print  "Iterasi baris ", i," dan kolom ", j,"\n";'

Keluaran:

Output berikut akan muncul setelah menjalankan skrip:.

Contoh-4: Menggunakan for loop dengan pernyataan break

istirahat pernyataan digunakan dalam loop apa pun untuk menghentikan loop sebelum mencapai kondisi terminasi berdasarkan kondisi tertentu. Dalam skrip berikut, for loop akan dimulai dari 3 dan akan berakhir ketika nilai saya lebih besar dari 20. Tetapi ketika nilai saya akan sama dengan variabel nomor maka kondisi if akan benar dan loop akan berhenti untuk istirahat pernyataan.

$ gema | awk 'MULAI angka=7; AKHIR untuk (i=3; i<=20; i++)
if(i == num) break;
lain
print  "Nilai saat ini dari i =",i ,"\n";'

Keluaran:

Di sini, jika kondisi salah untuk empat iterasi ketika nilai saya adalah 3,4,5 dan 6. Jadi, output berikut dicetak untuk empat iterasi:.

Contoh-5: Menggunakan for loop dengan pernyataan continue continue

Pernyataan Lanjutkan digunakan dalam loop apa pun untuk menghilangkan pernyataan apa pun berdasarkan kondisi tertentu. Sebuah array bernama produk dideklarasikan dalam skrip berikut:. untuk-dalam loop digunakan untuk mengulangi array dan memeriksa setiap nilai dengan “Perangkat Lunak Perkantoran“. Jika nilainya cocok maka pesan yang tidak tersedia akan dicetak dengan menghilangkan pesan yang tersedia untuk pernyataan lanjutan, jika tidak, pesan yang tidak tersedia akan dicetak. Jalankan skrip dari terminal.

$ gema | awk 'BEGINproduk["1001"]="Antivirus";
produk["1002"]="Perangkat Lunak Kantor";
product["1003"]="Perangkat Lunak Menggambar";
produk["1004"]="HDD";
produk["1005"]="DVD"; AKHIR untuk (saya dalam produk)
if(produk[i] == "Perangkat Lunak Office")
produk cetak[i]," tidak tersedia\n";
terus;

produk cetak[i], " tersedia"  ,"\n";'

Keluaran:

Output berikut akan muncul setelah menjalankan skrip:.

Contoh-6:  Menggunakan for loop dalam file awk

Buat file teks bernama penjualan.txt dan tambahkan konten berikut untuk mempraktikkan contoh ini.

penjualan.txt

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Buat file awk bernama cal_sal.awk dengan skrip berikut untuk menghitung jumlah total penjualan file: penjualan.txt. Bidang kedua berisi jumlah penjualan tahunan dalam file penjualan.txt. Dalam naskah, penjualan array akan menyimpan semua nilai bidang kedua dan jumlah variabel diinisialisasi dengan 0 untuk menambahkan semua nilai penjualan Himpunan. Lanjut, untuk-dalam loop digunakan untuk mengulangi setiap elemen dari penjualan array dan tambahkan nilainya dengan jumlah variabel. Terakhir, print statement digunakan untuk mencetak nilai jumlah variabel untuk menampilkan jumlah total penjualan.

cal_sal.awk


penjualan[i++]=$2;
jumlah=0;

AKHIR
untuk (saya dalam penjualan)

jumlah=jumlah+penjualan[i];

print "Jumlah penjualan total=" jumlah;

Jalankan perintah berikut untuk menjalankan skrip cal_sal.file awk.

$ awk -f cal_sal.penjualan awk.txt

Keluaran:

Ada 5 catatan dalam penjualan.txt file dan jumlah jumlah penjualan adalah 409.000 yang dicetak setelah menjalankan skrip.

Kesimpulan:

Penggunaan yang berbeda dari for loop dalam perintah awk coba dijelaskan dalam tutorial ini. Harapannya, pembaca akan mendapatkan ide yang jelas tentang penggunaan for loop dalam skrip awk dan dapat menggunakan for loop dengan benar dalam pemrograman awk.

Game Baris Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar Anda saat menggunakan Linux-ini juga dapat menjadi sumber hiburan karena Anda dapat menggunakannya untuk me...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Jika Anda suka bermain game di Linux dengan gamepad alih-alih sistem input keyboard dan mouse biasa, ada beberapa aplikasi yang berguna untuk Anda. Ba...
Alat Berguna untuk Gamer Linux
Jika Anda suka bermain game di Linux, kemungkinan besar Anda telah menggunakan aplikasi dan utilitas seperti Wine, Lutris, dan OBS Studio untuk mening...