GNU/Linux >> Belajar Linux >  >> Linux

Tertangkap Dalam Lingkaran? Awk While, Do While, For Loop, Break, Continue, Exit Contoh

Artikel ini adalah bagian dari seri Contoh Tutorial Awk yang sedang berlangsung. Dalam artikel awk kami sebelumnya, kami membahas tentang awk print, variabel yang ditentukan pengguna awk, variabel bawaan awk, operator awk, dan pernyataan kondisional awk.

Dalam artikel ini, mari kita tinjau tentang awk loop pernyataan – while, do while, for loops , break, continue, dan exit statement beserta 7 contoh praktisnya.

Pernyataan perulangan awk digunakan untuk melakukan serangkaian tindakan berulang kali secara berurutan. Itu berulang kali mengeksekusi pernyataan selama kondisinya benar. Awk memiliki sejumlah pernyataan perulangan seperti bahasa pemrograman 'C'.

Awk While Loop

Syntax:

while(condition)
	actions
  • sementara adalah kata kunci.
  • kondisi adalah ekspresi bersyarat
  • actions adalah badan dari while loop yang dapat memiliki satu atau lebih pernyataan. Jika tindakan memiliki lebih dari satu pernyataan, itu harus diapit dengan kurung kurawal.

Bagaimana cara kerjanya?Awk sementara loop memeriksa kondisi terlebih dahulu, jika kondisinya benar, maka daftar tindakan akan dieksekusi. Setelah eksekusi tindakan selesai, kondisi diperiksa lagi, dan jika benar, tindakan dilakukan lagi. Proses ini berulang sampai kondisi menjadi salah. Jika kondisi mengembalikan false pada iterasi pertama maka tindakan tidak pernah dieksekusi.

1. Contoh Awk While Loop:Buat string dengan panjang tertentu

$awk 'BEGIN { while (count++<50) string=string "x"; print string }'
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Contoh di atas menggunakan blok khusus 'BEGIN {}' yang dieksekusi sebelum hal lain dalam program Awk. Di blok ini, awk while loop menambahkan karakter 'x' ke variabel 'string' sebanyak 50 kali. count adalah variabel yang bertambah dan diperiksa kurang dari 50. Jadi setelah 50 iterasi, kondisi ini menjadi salah.
Setelah diulang, variabel 'string' akan dicetak. Karena program Awk ini tidak memiliki badan, program akan berhenti setelah menjalankan blok BEGIN.

Perulangan Awk Do-While

Bagaimana cara kerjanya?Awk Lakukan sambil loop disebut loop terkontrol keluar, sedangkan loop awk while disebut loop terkontrol entri. Karena while loop memeriksa kondisi terlebih dahulu, kemudian memutuskan untuk mengeksekusi body atau tidak. Tapi awk lakukan while loop mengeksekusi body sekali, lalu mengulang body selama kondisinya benar.

Syntax:

do
action
while(condition)

Bahkan jika kondisinya salah, pada awalnya tindakan dilakukan setidaknya sekali.

2. Awk Do While Loop Contoh:Cetak pesan minimal sekali

$ awk 'BEGIN{
count=1;
do
print "This gets printed at least once";
while(count!=1)
}'
This gets printed at least once

Dalam skrip di atas, pernyataan cetak, dieksekusi setidaknya sekali, jika Anda menggunakan pernyataan while, pertama-tama kondisinya akan diperiksa setelah hitungan diinisialisasi ke 1, pada iterasi pertama sendiri kondisinya akan salah, jadi pernyataan cetak menang' t dieksekusi, tetapi di do while body pertama akan dieksekusi, sehingga mengeksekusi pernyataan print.

Pernyataan Awk Untuk Loop

Awk untuk pernyataan sama dengan awk while loop, tetapi sintaksnya jauh lebih mudah digunakan.

Syntax:

for(initialization;condition;increment/decrement)
actions

Bagaimana cara kerjanya?Awk untuk pernyataan dimulai dengan menjalankan inisialisasi, kemudian memeriksa kondisinya, jika kondisinya benar, ia akan mengeksekusi tindakan, kemudian menambah atau mengurangi. Kemudian selama kondisinya benar, ia berulang kali mengeksekusi tindakan dan kemudian menambah/mengurangi.

3. Contoh Awk Untuk Loop . Cetak jumlah kolom di semua baris.

$ awk '{ for (i = 1; i <= NF; i++) total = total+$i }; END { print total }'
12 23 34 45 56
34 56 23 45 23
351

Awalnya variabel i diinisialisasi menjadi 1, kemudian memeriksa apakah i lebih kecil atau sama dengan jumlah total bidang, kemudian terus menambahkan semua bidang dan akhirnya penambahan disimpan dalam total variabel. Di blok END cukup cetak total variabel.

4. Contoh Awk For Loop:Cetak bidang dalam urutan terbalik pada setiap baris.

$ awk 'BEGIN{ORS="";}{ for (i=NF; i>0; i--) print $i," "; print "\n"; }' student-marks
77  84  78  2143  Jones
45  58  56  2321  Gondrol
37  38  2122  RinRao
95  97  87  2537  Edwin
47  30  2415  Dayan

Kami membahas tentang variabel bawaan awk NF di artikel kami sebelumnya. Setelah memproses setiap baris, Awk menyetel variabel NF ke jumlah bidang yang ditemukan pada baris tersebut.

Skrip di atas, loop dalam urutan terbalik mulai dari NF ke 1 dan menampilkan bidang satu per satu. Dimulai dengan bidang $NF, kemudian $(NF-1),…, $1. Setelah itu mencetak karakter baris baru.

Sekarang mari kita lihat beberapa pernyataan lain yang dapat digunakan dengan pernyataan perulangan.

Pernyataan Awk Break

Pernyataan break digunakan untuk melompat keluar dari perulangan terdalam ( while,do-while dan for loop) yang mengapitnya.

5. Contoh Awk Break:Skrip Awk hanya melalui 10 iterasi

$ awk 'BEGIN{while(1) print "forever"}'

Loop awk while di atas mencetak string "selamanya" selamanya, karena kondisinya tidak pernah gagal. Sekarang jika Anda ingin menghentikan loop setelah 10 iterasi pertama, lihat skrip di bawah ini.

$ awk 'BEGIN{
x=1;
while(1)
{
print "Iteration";
if ( x==10 )
break;
x++;
}}'
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration

Dalam script di atas, ia memeriksa nilai variabel “x”, jika mencapai 10 hanya melompat keluar dari loop menggunakan pernyataan break.

Pernyataan Lanjutkan Awk

Pernyataan Continue melompati seluruh badan loop yang menyebabkan siklus berikutnya di sekitar loop segera dimulai.

6. Awk Continue Contoh:Jalankan loop kecuali iterasi ke-5

$ awk 'BEGIN{
x=1;
while(x<=10)
{
if(x==5){
x++;
continue;
}
print "Value of x",x;x++;
}
}'
Value of x 1
Value of x 2
Value of x 3
Value of x 4
Value of x 6
Value of x 7
Value of x 8
Value of x 9
Value of x 10

Dalam skrip di atas, ia mencetak nilai x, pada setiap iterasi, tetapi jika nilai x mencapai 5, maka itu hanya menambah nilai x, kemudian melanjutkan dengan iterasi berikutnya, itu tidak akan mengeksekusi sisa tubuh loop, sehingga nilai x tidak tercetak untuk nilai 5. Pernyataan Lanjutkan memiliki arti hanya jika Anda menggunakan dengan dalam perulangan.

Pernyataan Keluar Awk

Pernyataan keluar menyebabkan skrip segera berhenti mengeksekusi input saat ini dan berhenti memproses input, semua input yang tersisa diabaikan.

Keluar menerima bilangan bulat apa pun sebagai argumen yang akan menjadi kode status keluar untuk proses awk. Jika tidak ada argumen yang diberikan, exit akan mengembalikan status nol.

7. Awk Exit Contoh:Keluar dari loop pada iterasi ke-5

$ awk 'BEGIN{
x=1;
while(x<=10)
{
if(x==5){
exit;}
print "Value of x",x;x++;
}
}'
Value of x 1
Value of x 2
Value of x 3
Value of x 4

Dalam skrip di atas, setelah nilai x mencapai 5, ia memanggil exit, yang menghentikan eksekusi proses awk. Jadi nilai x dicetak hanya sampai 4, setelah mencapai 5 keluar.

Bacaan yang Disarankan

Sed dan Awk 101 Hacks, oleh Ramesh Natarajan . Saya menghabiskan beberapa jam sehari di lingkungan UNIX / Linux yang berurusan dengan file teks (data, konfigurasi, dan file log). Saya menggunakan Sed dan Awk untuk semua pekerjaan manipulasi teks saya. Berdasarkan pengalaman Sed dan Awk saya, saya telah menulis eBook Sed dan Awk 101 Hacks yang berisi 101 contoh praktis tentang berbagai fitur canggih Sed dan Awk yang akan meningkatkan kehidupan UNIX / Linux Anda. Bahkan jika Anda telah menggunakan Sed dan Awk selama beberapa tahun dan belum membaca buku ini, bantulah diri Anda sendiri dan baca buku ini. Anda akan kagum dengan kemampuan utilitas Sed dan Awk.


Linux
  1. Contoh Bash For Loop dan While Loop

  2. Menjaga Anda di Loop – Contoh Bash Untuk, Sementara, Sampai Loop

  3. Contoh Bash untuk loop

  1. Panduan Bash For Loop dan Contohnya

  2. Perintah keluar Linux Dijelaskan untuk Pemula (dengan Contoh)

  3. Cara mendapatkan status keluar satu lingkaran di bash

  1. Tutorial Perintah Numfmt Dengan Contoh Untuk Pemula

  2. Tutorial Perintah Mengetik Dengan Contoh Untuk Pemula

  3. Skrip Linux:3 cara untuk while loop di Bash