Sintaksis:
Sintaks untuk empat jenis pernyataan kondisional disebutkan di bawah ini:.
- jika pernyataan
pernyataan
Pernyataan dijalankan ketika kondisi if mengembalikan true.
- pernyataan if-else
pernyataan-1
lain
pernyataan-2
Pernyataan-1 dijalankan ketika kondisi if benar dan pernyataan-2 dieksekusi ketika if kembali salah.
- pernyataan if-elseif
pernyataan-1
kalau tidak
pernyataan-2
kalau tidak
pernyataan-3
… .
lain
pernyataan-n
Pernyataan bersyarat ini digunakan untuk mengeksekusi pernyataan berdasarkan beberapa kondisi if. Jika kondisi pertama salah maka ia memeriksa kondisi kedua second. Jika kondisi kedua salah maka ia memeriksa kondisi ketiga dan seterusnya. Jika semua kondisi kembali salah maka itu akan mengeksekusi pernyataan bagian lain.
- Terner (?:) operator
Operator ternary dapat digunakan sebagai alternatif dari pernyataan if-else. Jika kondisi benar maka pernyataan-1 akan dieksekusi dan jika kondisi salah maka pernyataan-2 akan dijalankan.
Contoh-1: Menggunakan if sederhana dalam awk
Buat file teks bernama karyawan.txt dengan konten berikut. Misalkan, Anda harus mencari tahu nama departemen, usia, dan gaji karyawan yang idnya 11002.
karyawan.txt
11001 Penjualan 45 $300011002 HR 32 $1500
11003 Pemasaran 26 $1.200
11004 HR 25 $2500
Kondisi if sederhana digunakan dalam skrip berikut untuk mencari id 11002 di bidang pertama file. Jika kondisinya menjadi benar maka itu akan mencetak nilai bidang lain dari baris yang sesuai jika tidak, tidak ada yang akan dicetak.
$ aw 'jika($1 =="11002")
print "Nama Jurusan: ",$2,"\n";
print "Usia: ",$3,"\n";
print "Gaji: ",$4,"\n";
' karyawan.txt
Keluaran:
Id, 1102 ada di file. Jadi, itu mencetak nilai-nilai lain dari karyawan.
Contoh-2: Menggunakan if-else di awk
Misalkan, Anda ingin mencetak informasi gaji karyawan yang usianya kurang dari atau sama dengan 40 dan mencetak informasi usia karyawan lain. Skrip awk berikut dapat melakukan tugas ini. Hanya ada satu karyawan di karyawan.txt file yang usianya lebih dari 40 dan semua usia karyawan lainnya kurang dari 40.
$ aw 'jika($3 <= 40)
print "Gaji dari ",$1, " adalah ", $4, "\n"
lain
print "Usia ",$1, " adalah ", $3, "\n"
' karyawan.txt
Keluaran:
Output berikut akan muncul setelah menjalankan skrip:.
Contoh-3: Menggunakan if-elseif dalam skrip awk
Buat file teks bernama orang.txt dengan konten berikut.
orang.txt
JACKSON Pria BisnisMARTIN Pria Pemegang Layanan
LILY Wanita Manajer
ROBINSON Pria CEO
Buat file awk bernama if_elseif.awk dengan kode berikut untuk mencetak warna favorit setiap orang yang namanya ada di file. Pernyataan if-elseif digunakan dalam skrip untuk melakukan tugas ini. Script akan membaca nilai field pertama dari file, karyawan.txt dan periksa dengan nilai tertentu. Jika yang pertama jika kondisi menjadi salah maka akan memeriksa yang kedua jika kondisi dan sebagainya. Ketika kondisi if menjadi true maka nilai warna akan diberikan. Jika semua kondisi menjadi salah maka Tidak ada akan ditetapkan sebagai nilai warna. Warna favorit setiap orang akan dicetak atau “Tidak ada orang yang ditemukan” akan dicetak jika tidak ada nama orang yang cocok.
if_elseif.awk
nama=$1;
if ( nama="JACKSON" ) color="Biru";
else if (nama=="MARTIN") color="Hitam";
else if (nama="LILY") color="Merah";
else if (nama=="ROBINSON") color="Putih";
warna lain = "Tidak ada";
jika (warna!="Tidak Ada") print "Warna favorit ", nama, "adalah ", warna;
else print "Tidak ada orang yang ditemukan";
Jalankan perintah berikut untuk mengeksekusi file if_elseif.awk dengan orang.txt
$ awk -f if_elseif.orang awk.txtKeluaran:
Output berikut akan muncul setelah menjalankan perintah:.
Contoh-4: Menggunakan operator ternary di awk
Bidang ketiga orang.txt file berisi profesi setiap orang. Operator ternary berikut membaca setiap baris file dan mencocokkan nilai bidang ketiga dengan “Pengelola”. Jika nilainya cocok maka itu akan mencetak nama orang tersebut dan sebaliknya akan mencetak jenis kelamin orang tersebut.
$ awk ' print ($3=="Manajer") ? "Nama adalah " $1 : "Jenis kelamin adalah " $2' orang.txtKeluaran:
Output berikut akan muncul setelah menjalankan skrip:. Satu orang dengan “Profesi manajer ada di orang.txt. Jadi, nama satu orang dicetak dan jenis kelamin dicetak untuk orang lain.
Contoh-5: Menggunakan beberapa kondisi dalam pernyataan if
Logical OR dan Logical AND dapat digunakan untuk mendefinisikan beberapa kondisi dalam pernyataan kondisional skrip awk. Skrip awk berikut membaca setiap baris dari karyawan.txt dan memeriksa usia dan penunjukan dengan nilai-nilai tertentu. Logika AND digunakan dalam jika kondisi. Ketika nilai usia lebih besar dari atau sama dengan 30 dan penunjukannya adalah “SDM” maka id karyawan dan gaji yang sesuai akan tercetak.
$ awk ' if ($3 >= 30 && $2 == "HR") print "Karyawan id: ",$1, " dan ", "Gaji: ", $4, "\n";' karyawan.txt
Keluaran:
Output berikut akan muncul setelah menjalankan skrip:. Hanya ada satu karyawan yang ada dengan sebutan, "SDM" di karyawan.txt. Id dan informasi gaji untuk karyawan ini dicetak di sini.
Kesimpulan:
Penggunaan paling umum dari pernyataan bersyarat dari setiap pemrograman standar didukung oleh perintah awk. Bagaimana Anda dapat menggunakan kondisi tunggal dan ganda dalam awk dijelaskan dengan menggunakan contoh yang sangat sederhana di sini. Harapan setelah mempraktekkan contoh-contoh ini pelajar akan dapat menggunakan pernyataan kondisional dengan benar dalam skrip awk.