Cara menggunakan ekspresi majemuk dengan awk di linux - bagian 5
- 2631
- 499
- Simon Cormier
Selama ini, kami telah melihat ekspresi sederhana saat memeriksa apakah suatu kondisi telah bertemu atau tidak. Bagaimana jika Anda ingin menggunakan lebih dari satu ekspresi untuk memeriksa kondisi tertentu di?
Dalam artikel ini, kita akan melihat bagaimana Anda dapat menggabungkan beberapa ekspresi yang disebut sebagai ekspresi majemuk untuk memeriksa suatu kondisi saat memfilter teks atau string.
Di dalam AWK, Ekspresi majemuk dibangun menggunakan &&
disebut sebagai (Dan)
dan ||
disebut sebagai (atau)
operator majemuk.
Sintaks umum untuk ekspresi majemuk adalah:
(first_expression) && (Second_Expression)
Di Sini, First_expression
Dan Second_expression
harus benar untuk mewujudkan seluruh ekspresi.
(first_expression) || (Second_Expression)
Di sini, salah satu ekspresi juga First_expression
atau Second_expression
harus benar agar seluruh ekspresi benar.
Peringatan: Ingatlah untuk selalu memasukkan tanda kurung.
Ekspresi dapat dibangun menggunakan operator perbandingan yang kami lihat di bagian 4 dari seri AWK.
Mari kita dapatkan pemahaman yang jelas menggunakan contoh di bawah ini:
Dalam contoh ini, memiliki file teks bernama tecmint_deals.txt
, Yang berisi daftar beberapa penawaran tecmint acak yang luar biasa, itu termasuk nama kesepakatan, harga dan jenisnya.
Tidak Ada Nama Harga Jenis 1 Mac_OS_X_CLEANUP_SUITE $ 9.99 Software 2 Basics_notebook $ 14.99 Lifestyle 3 Tactical_pen $ 25.99 Lifestyle 4 Scapple $ 19.00 tidak diketahui 5 nano_tool_pack $ 11.99 tidak diketahui 6 ditto_bluetooth_altering_device $ 33.00 Tech 7 nano_prowler_mini_drone $ 36.99 Tech
Katakan bahwa kami hanya ingin penawaran cetak dan bendera yang ada di atas $ 20 dan tipe "Tech" menggunakan (**)
Masuk di akhir setiap baris.
Kita harus menjalankan perintah di bawah ini.
# awk '($ 3 ~ /^$ [2-9] [0-9]*\.[0-9] [0-9] $/) && ($ 4 == "Tech") printf "%s \ t%s \ n", $ 0, "*"; 'tecmint_deals.txt 6 ditto_bluetooth_altering_device $ 33.00 Tech * 7 nano_prowler_mini_drone $ 36.99 Tech *
Dalam contoh ini, kami telah menggunakan dua ekspresi dalam ekspresi majemuk:
- Ekspresi pertama, ($ 3 ~ /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/) ; Memeriksa jalur untuk penawaran dengan harga di atas $ 20, dan memang benar jika nilainya $ 3 yang harganya cocok dengan polanya /^\ $ [2-9] [0-9]*\.[0-9] [0-9] $/
- Dan ungkapan kedua, ($ 4 == "Tech") ; memeriksa apakah kesepakatannya "Tech" dan memang benar jika nilainya $ 4 sama dengan "Tech".
Ingat, garis hanya akan ditandai dengan (**)
, jika ekspresi pertama Dan ekspresi kedua benar seperti menyatakan prinsip &&
operator.
Ringkasan
Beberapa kondisi selalu memerlukan ekspresi senyawa bangunan agar Anda cocok dengan apa yang Anda inginkan. Saat Anda memahami penggunaan perbandingan dan operator ekspresi senyawa, menyaring teks atau string berdasarkan beberapa kondisi yang sulit akan menjadi mudah.
Semoga Anda menemukan panduan ini bermanfaat dan untuk pertanyaan atau penambahan, selalu ingat untuk meninggalkan komentar dan kekhawatiran Anda akan diselesaikan sesuai.
- « Vlock - Cara Cerdas untuk Mengunci Konsol Virtual Pengguna atau Terminal di Linux
- Cara menggunakan operator perbandingan dengan AWK di Linux - Bagian 4 »