Aduh

Cara menggunakan pernyataan bersyarat dalam perintah awk

Cara menggunakan pernyataan bersyarat dalam perintah awk
Pernyataan bersyarat digunakan dalam bahasa pengaturcaraan apa pun untuk melaksanakan pernyataan berdasarkan keadaan tertentu. Pernyataan bersyarat dilaksanakan berdasarkan nilai benar atau salah apabila pernyataan if-else dan if-elseif digunakan untuk menulis pernyataan bersyarat dalam pengaturcaraan. Awk menyokong semua jenis pernyataan bersyarat seperti bahasa pengaturcaraan lain.  Bagaimana pernyataan bersyarat yang berbeza dapat digunakan dalam perintah awk ditunjukkan dalam tutorial ini.

Sintaks:

Sintaks untuk empat jenis pernyataan bersyarat disebutkan di bawah.

  1. sekiranya penyataan
jika (keadaan)
penyataan

Pernyataan tersebut dilaksanakan apabila keadaan if kembali benar.

  1. pernyataan if-else
jika (keadaan)
penyataan-1

lain
penyataan-2

Pernyataan-1 dilaksanakan apabila keadaan if benar dan penyataan-2 dilaksanakan apabila jika kembali salah.

  1. pernyataan if-elseif
jika (keadaan)
penyataan-1

lain-lain
penyataan-2

lain-lain
penyataan-3

… .
lain
penyataan-n

Pernyataan bersyarat ini digunakan untuk melaksanakan pernyataan berdasarkan syarat jika berganda. Sekiranya syarat pertama adalah salah maka ia memeriksa keadaan kedua. Sekiranya syarat kedua adalah salah maka ia memeriksa keadaan ketiga dan seterusnya. Sekiranya semua syarat kembali salah maka ia akan melaksanakan penyataan bahagian lain.

  1. Ternary (?:) pengendali
(keadaan) ? pernyataan-1: pernyataan-2

Operator Ternary boleh digunakan sebagai alternatif penyataan if-else. Sekiranya syarat itu benar maka pernyataan-1 akan dilaksanakan dan jika keadaan itu salah maka pernyataan-2 akan dilaksanakan.

Contoh-1: Menggunakan mudah jika dalam awk

Buat fail teks bernama emplyee.txt dengan kandungan berikut. Katakanlah, anda harus mengetahui nama jabatan, umur, dan gaji pekerja yang idnya 11002.

pekerja.txt

11001 Jualan 45 $ 3000
11002 HR 32 $ 1500
11003 Pemasaran 26 $ 1200
11004 HR 25 $ 2500

Syarat jika mudah digunakan dalam skrip berikut untuk mencari id 11002 di bidang pertama fail. Sekiranya syarat menjadi benar maka ia akan mencetak nilai medan lain dari garis yang sesuai jika tidak, tidak ada yang akan dicetak.

$ awk '
jika ($ 1 == "11002")

cetak "Nama Jabatan:", $ 2, "\ n";
cetak "Umur:", $ 3, "\ n";
cetak "Gaji:", $ 4, "\ n";
 

pekerja.txt

Pengeluaran:

Id, 1102 ada di dalam fail. Oleh itu, ia mencetak nilai pekerja yang lain.

Contoh-2: Menggunakan if-else dalam awk

Katakanlah, anda ingin mencetak maklumat gaji pekerja yang umurnya kurang dari atau sama dengan 40 dan mencetak maklumat umur untuk pekerja lain. Skrip awk berikut dapat melakukan tugas ini. Hanya ada seorang pekerja di pekerja.txt fail yang umurnya lebih dari 40 dan semua umur pekerja lain kurang dari 40.

$ awk '
sekiranya ($ 3 <= 40)

cetak "Gaji", $ 1, "adalah", $ 4, "\ n"

yang lain

cetak "Umur", $ 1, "adalah", $ 3, "\ n"

 
pekerja.txt

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip.

Contoh-3: Menggunakan if-elseif dalam skrip awk

Buat fail teks bernama orang.txt dengan kandungan berikut.

orang.txt

Perniagaan Lelaki JACKSON
Pemegang Perkhidmatan Lelaki MARTIN
Pengurus Wanita LILY
CEO lelaki ROBINSON

Buat fail awk bernama sekiranya_elseif.awk dengan kod berikut untuk mencetak warna kegemaran setiap orang yang namanya ada dalam fail. Pernyataan if-elseif digunakan dalam skrip untuk melakukan tugas ini. Skrip akan membaca nilai medan pertama fail, pekerja.txt dan periksa dengan nilai tertentu. Sekiranya yang pertama sekiranya keadaan menjadi palsu maka ia akan memeriksa yang kedua sekiranya keadaan dan sebagainya. Apabila ada sekiranya keadaan menjadi benar maka nilai warna akan diberikan. Sekiranya semua syarat menjadi salah maka Tiada akan diberikan sebagai nilai warna. Warna kegemaran setiap orang akan dicetak atau "Tidak ada orang yang dijumpai" akan dicetak jika tiada nama orang yang sepadan.

sekiranya_elseif.awk


nama = $ 1;
if (name == "JACKSON") warna = "Biru";
lain jika (nama == "MARTIN") warna = "Hitam";
lain jika (nama == "LILY") warna = "Merah";
lain jika (nama == "ROBINSON") warna = "Putih";
warna lain = "Tiada";
 
jika (warna!= "Tiada") cetak "Warna kegemaran", name, "is", color;
lain cetak "Tiada orang dijumpai";
 

Jalankan arahan berikut untuk melaksanakan fail if_elseif.awk dengan orang.txt

$ awk -f if_elseif.awk orang.txt

Pengeluaran:

Output berikut akan muncul setelah menjalankan perintah.

Contoh-4: Menggunakan operator ternary di awk

Bidang ketiga dari orang.txt fail mengandungi profesion setiap orang. Operator ternary berikut membaca setiap baris fail dan memadankan nilai medan ketiga dengan “Pengurus". Sekiranya nilainya sesuai, ia akan mencetak nama orang tersebut dan sebaliknya akan mencetak jantina orang tersebut.

$ awk 'print ($ 3 == "Pengurus") ? "Nama adalah" $ 1: "Jantina adalah" $ 2 'orang.txt

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip. Satu orang dengan "Profesion pengurus wujud di orang.txt. Jadi, nama satu orang dicetak dan jantina dicetak untuk orang lain.

Contoh-5: Menggunakan pelbagai keadaan dalam penyataan if

Logik ATAU dan Logik DAN boleh digunakan untuk menentukan beberapa keadaan dalam pernyataan bersyarat dari skrip awk. Skrip awk berikut membaca setiap baris pekerja.txt dan memeriksa usia dan sebutan dengan nilai-nilai tertentu. Logik DAN digunakan dalam sekiranya keadaan. Apabila nilai umur lebih besar dari atau sama dengan 30 dan sebutannya adalah "HR" maka id dan gaji pekerja yang sesuai akan dicetak.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") cetak "Id pekerja:",
$ 1, "dan", "Gaji:", $ 4, "\ n"; 'pekerja.txt

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip. Hanya ada satu pekerja yang ada dengan sebutan, "HR" di pekerja.txt. Maklumat id dan gaji pekerja ini dicetak di sini.

Kesimpulan:

Kegunaan penyataan bersyarat dari pengaturcaraan standard yang paling biasa disokong oleh perintah awk. Bagaimana anda boleh menggunakan satu dan beberapa keadaan di awk dijelaskan dengan menggunakan contoh yang sangat mudah di sini. Harap setelah mengamalkan contoh ini, pelajar akan dapat menggunakan pernyataan bersyarat dengan betul dalam skrip awk.

Cara Menunjukkan Overlay OSD dalam Aplikasi dan Permainan Linux Skrin Penuh
Bermain permainan skrin penuh atau menggunakan aplikasi dalam mod skrin penuh bebas gangguan dapat memisahkan anda dari maklumat sistem yang relevan y...
5 Kad Tangkap Permainan Teratas
Kita semua telah melihat dan menyukai streaming permainan permainan di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain terat...
Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...