GNU/Linux >> Belajar Linux >  >> Linux

4 Contoh Pernyataan Awk If ( if, if else, if else if, :? )

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, dan operator awk.

Dalam tutorial awk ini, mari kita tinjau pernyataan if bersyarat awk dengan contoh praktis.

Awk mendukung banyak pernyataan bersyarat untuk mengontrol aliran program. Sebagian besar sintaks pernyataan kondisional Awk terlihat seperti bahasa pemrograman 'C'.

Biasanya pernyataan bersyarat memeriksa kondisi, sebelum melakukan tindakan apa pun. Jika kondisinya benar, tindakan dilakukan. Demikian pula tindakan dapat dilakukan jika kondisinya salah.

Pernyataan bersyarat dimulai dengan kata kunci yang disebut 'jika'. Awk mendukung dua jenis pernyataan if yang berbeda.

  1. Pernyataan Awk Simple If
  2. Pernyataan Awk If-Else
  3. Awk If-ElseIf-Ladder

Pernyataan Awk Simple If

Tindakan Tunggal: Pernyataan Simple If digunakan untuk memeriksa kondisi, jika kondisi mengembalikan true, ia melakukan tindakan yang sesuai.

Syntax:
if (conditional-expression)
	action
  • jika adalah kata kunci
  • ekspresi kondisional – ekspresi untuk memeriksa kondisi
  • aksi – pernyataan awk untuk melakukan tindakan.

Beberapa Tindakan: Jika ekspresi kondisional mengembalikan nilai true, maka tindakan akan dilakukan. Jika lebih dari satu tindakan perlu dilakukan, tindakan harus diapit dalam kurung kurawal, memisahkannya menjadi baris atau titik koma baru seperti yang ditunjukkan di bawah ini.

Syntax:
if (conditional-expression)
{
	action1;
	action2;
}

Jika kondisinya benar, semua tindakan yang terlampir dalam kurung kurawal akan dilakukan dalam urutan yang diberikan. Setelah semua tindakan dilakukan, ia melanjutkan untuk mengeksekusi pernyataan berikutnya.

Pernyataan Awk If Else

Dalam pernyataan if awk sederhana di atas, tidak ada serangkaian tindakan jika kondisinya salah. Dalam pernyataan awk If Else Anda dapat memberikan daftar tindakan yang harus dilakukan jika kondisinya salah. Jika kondisi mengembalikan true, tindakan 1 akan dilakukan, jika kondisinya salah, tindakan 2 akan dilakukan.

Syntax:
if (conditional-expression)
	action1
else
	action2

Awk juga memiliki operator bersyarat yaitu operator ternary ( ?:) yang fiturnya mirip dengan pernyataan If Else awk. Jika ekspresi bersyarat benar, tindakan1 akan dilakukan dan jika ekspresi bersyarat salah, tindakan2 akan dilakukan.

Syntax:

conditional-expression ? action1 : action2 ;

Awk Jika Lain Jika tangga

if(conditional-expression1)
	action1;
else if(conditional-expression2)
	action2;
else if(conditional-expression3)
	action3;
	.
	.
else
	action n;
  • Jika ekspresi bersyarat1 benar, maka tindakan1 akan dilakukan.
  • Jika conditional-expression1 salah maka conditional-expression2 akan diperiksa, jika true, action2 akan dilakukan dan berlangsung seperti ini. Bagian lain terakhir akan dilakukan jika tidak ada ekspresi kondisional yang benar.

Sekarang mari kita buat file input sampel yang memiliki nilai siswa.

$cat student-marks
Jones 2143 78 84 77
Gondrol 2321 56 58 45
RinRao 2122 38 37
Edwin 2537 87 97 95
Dayan 2415 30 47

1. Awk If Contoh:Periksa semua tanda ada

$ awk '{
if ($3 =="" || $4 == "" || $5 == "")
	print "Some score for the student",$1,"is missing";'
}' student-marks
Some score for the student RinRao is missing
Some score for the student Dayan is missing

$3, $4 dan $5 adalah nilai ujian siswa. Jika skor tes sama dengan kosong, itu melempar pesan. || operator adalah untuk memeriksa salah satu tanda tidak ada, itu harus waspada.

2. Awk If Else Contoh:Buat Laporan Lulus/Gagal berdasarkan nilai Siswa di setiap mata pelajaran

$ awk '{
if ($3 >=35 && $4 >= 35 && $5 >= 35)
	print $0,"=>","Pass";
else
	print $0,"=>","Fail";
}' student-marks
Jones 2143 78 84 77 => Pass
Gondrol 2321 56 58 45 => Pass
RinRao 2122 38 37 => Fail
Edwin 2537 87 97 95 => Pass
Dayan 2415 30 47 => Fail

Syarat Lulus adalah semua nilai ujian harus lebih besar atau sama dengan 35. Jadi semua nilai ujian diperiksa jika lebih besar dari 35, maka ia mencetak seluruh baris dan string "Lulus", yang lain yaitu bahkan jika salah satu dari skor tes tidak memenuhi syarat, ia mencetak seluruh baris dan mencetak string “Gagal”.

3. Awk If Else If Contoh:Temukan rata-rata dan nilai untuk setiap siswa

$ cat grade.awk
{
total=$3+$4+$5;
avg=total/3;
if ( avg >= 90 ) grade="A";
else if ( avg >= 80) grade ="B";
else if (avg >= 70) grade ="C";
else grade="D";

print $0,"=>",grade;
}
$ awk -f grade.awk student-marks
Jones 2143 78 84 77 => C
Gondrol 2321 56 58 45 => D
RinRao 2122 38 37 => D
Edwin 2537 87 97 95 => A
Dayan 2415 30 47 => D

Dalam skrip awk di atas, variabel yang disebut 'avg' memiliki rata-rata dari tiga nilai tes. Jika rata-rata lebih besar atau sama dengan 90, maka nilainya adalah A, atau jika rata-rata lebih besar atau sama dengan 80 maka nilainya adalah B, jika rata-rata lebih besar atau sama dengan 70, maka nilainya adalah C. Atau kalau tidak, nilainya D.

4. Awk Ternary ( ?:) Contoh:Gabungkan setiap 3 baris input dengan koma.

$ awk 'ORS=NR%3?",":"\n"' student-marks
Jones 2143 78 84 77,Gondrol 2321 56 58 45,RinRao 2122 38 37
Edwin 2537 87 97 95,Dayan 2415 30 47,

Kami membahas tentang variabel bawaan awk ORS sebelumnya. Variabel ini ditambahkan setelah setiap baris yang mendapatkan output. Dalam contoh ini, itu akan diubah pada setiap baris ke-3 dari koma ke baris baru. Untuk baris 1, 2 adalah koma, untuk baris 3 adalah baris baru, untuk baris 4, 5 adalah koma, untuk baris 6 adalah baris baru, dst.

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. Cara Menggunakan if else Conditionals Statement di Bash Script

  2. Pernyataan Bash If-Else Dengan Contoh

  3. Tutorial Pengenalan Awk – 7 Contoh Cetak Awk

  1. Array AWK Dijelaskan dengan 5 Contoh Praktis

  2. 5 Contoh Pernyataan Kasus Bash

  3. Contoh Perintah awk di Linux

  1. Bash if elif else Pernyataan:Tutorial Komprehensif

  2. 4 Contoh Pernyataan Bash If ( If then fi, If then else fi, If elif else fi, Nested if )

  3. Bash/sh pernyataan 'jika lain'