Cara Menggunakan Operator Perbandingan dengan Awk di Linux - Part 4
Saat menangani nilai numerik atau string dalam satu baris teks, memfilter teks atau string menggunakan operator perbandingan akan berguna bagi pengguna perintah Awk.
Di bagian seri Awk ini, kita akan melihat bagaimana Anda dapat memfilter teks atau string menggunakan operator perbandingan. Jika Anda seorang programmer pasti sudah familiar dengan operator perbandingan, namun bagi yang belum, izinkan saya menjelaskannya pada bagian di bawah ini.
Apa itu operator perbandingan di Awk?
Operator perbandingan di Awk digunakan untuk membandingkan nilai angka atau string dan mencakup hal berikut:
>
– lebih besar dari<
– kurang dari>=
– lebih besar dari atau sama dengan<=
– kurang dari atau sama dengan==
– sama dengan!=
– tidak sama dengansome_value ~/pattern/
– benar jika some_value cocok dengan polasome_value !~/pattern/
– benar jika some_value tidak cocok dengan pola
Sekarang kita telah melihat berbagai operator perbandingan di Awk, mari kita memahaminya dengan lebih baik menggunakan sebuah contoh.
Dalam contoh ini, kita memiliki file bernama food_list.txt yang merupakan daftar belanja berbagai jenis makanan dan saya ingin menandai item makanan yang jumlahnya kurang dari atau sama dengan 20 dengan menambahkan ( **)
di akhir setiap baris.
No Item_Name Quantity Price
1 Mangoes 45 $3.45
2 Apples 25 $2.45
3 Pineapples 5 $4.45
4 Tomatoes 25 $3.45
5 Onions 15 $1.45
6 Bananas 30 $3.45
Sintaks umum untuk menggunakan operator perbandingan di Awk adalah:
expression { actions; }
Untuk mencapai tujuan di atas, saya harus menjalankan perintah di bawah ini:
# awk '$3 <= 30 { printf "%s\t%s\n", $0,"**" ; } $3 > 30 { print $0 ;}' food_list.txt
No Item_Name` Quantity Price
1 Mangoes 45 $3.45
2 Apples 25 $2.45 **
3 Pineapples 5 $4.45 **
4 Tomatoes 25 $3.45 **
5 Onions 15 $1.45 **
6 Bananas 30 $3.45 **
Pada contoh di atas, ada dua hal penting yang terjadi:
- Ekspresi pertama { action ; kombinasi }, $3 <= 30 { printf “%s\t%s\n”, $0,”**” ; } mencetak garis dengan jumlah kurang dari atau sama dengan 30 dan menambahkan (**) di akhir setiap baris. Nilai kuantitas diakses menggunakan variabel kolom $3.
- Ekspresi kedua { action ; kombinasi }, $3 > 30 { print $0 ;} mencetak garis tanpa perubahan karena kuantitasnya lebih besar dari 30.
Satu contoh lagi:
# awk '$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; } $3 > 20 { print $0 ;} ' food_list.txt
No Item_Name Quantity Price
1 Mangoes 45 $3.45
2 Apples 25 $2.45
3 Pineapples 5 $4.45 TRUE
4 Tomatoes 25 $3.45
5 Onions 15 $1.45 TRUE
6 Bananas 30 $3.45
Dalam contoh ini, kami ingin menunjukkan baris dengan kuantitas kurang dari atau sama dengan 20 dengan kata (TRUE) di akhir.
Ringkasan
Ini adalah tutorial pengantar tentang operator perbandingan di Awk, oleh karena itu Anda perlu mencoba banyak opsi lain dan menemukan lebih banyak.
Jika ada masalah yang Anda hadapi atau tambahan apa pun yang Anda pikirkan, berikan komentar di bagian komentar di bawah. Ingatlah untuk membaca bagian selanjutnya dari seri Awk di mana saya akan membawa Anda melalui ekspresi majemuk.