awk

Cara menggunakan pernyataan bersyarat dalam perintah awk

Cara menggunakan pernyataan bersyarat dalam perintah awk
Pernyataan bersyarat digunakan dalam bahasa pemrograman apa pun untuk mengeksekusi pernyataan apa pun berdasarkan kondisi tertentu. Pernyataan bersyarat dijalankan berdasarkan nilai benar atau salah ketika pernyataan if-else dan if-elseif digunakan untuk menulis pernyataan bersyarat dalam pemrograman. Awk mendukung semua jenis pernyataan bersyarat seperti bahasa pemrograman lainnya.  Bagaimana pernyataan kondisional yang berbeda dapat digunakan dalam perintah awk ditunjukkan dalam tutorial ini.

Sintaksis:

Sintaks untuk empat jenis pernyataan kondisional disebutkan di bawah ini:.

  1. jika pernyataan
jika (kondisi)
pernyataan

Pernyataan dijalankan ketika kondisi if mengembalikan true.

  1. pernyataan if-else
jika (kondisi)
pernyataan-1

lain
pernyataan-2

Pernyataan-1 dijalankan ketika kondisi if benar dan pernyataan-2 dieksekusi ketika if kembali salah.

  1. pernyataan if-elseif
jika (kondisi)
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.

  1. Terner (?:) operator
(kondisi) ? pernyataan-1: pernyataan-2

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   $3000
11002  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      Bisnis
MARTIN      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.txt

Keluaran:

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.txt

Keluaran:

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.

Port Sumber Terbuka dari Mesin Game Komersial
Rekreasi mesin game gratis, open source, dan lintas platform dapat digunakan untuk bermain lama serta beberapa judul game yang cukup baru. Artikel ini...
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...