Bagi pengguna yang menggunakan arahan awk, apabila memproses nombor atau rentetan dalam baris teks, adalah sangat mudah untuk menggunakan operator perbandingan untuk menapis teks dan rentetan. Dalam bahagian berikut kami memperkenalkan pengendali perbandingan "awk".
Apakah pengendali perbandingan di awk?
Operator perbandingan dalam awk digunakan untuk membandingkan rentetan dan nilai angka, termasuk jenis berikut:
Fungsi Simbol
<
>= Lebih besar daripada atau sama dengan
<= kurang daripada atau sama dengan
== Sama dengan
!= tidak sama dengan
some_value ~ / pattern/ Mengembalikan benar jika some_value sepadan dengan pattern pattern
some_value !~ / pattern/ Mengembalikan benar jika some_value tidak sepadan dengan corak pattern Sekarang mari kita biasakan diri dengan pelbagai operator perbandingan dalam awk melalui contoh.
Contoh 1, kami mempunyai fail bernama food_list.txt, yang mengandungi senarai pembelian makanan yang berbeza. Saya ingin menambah (**)
selepas barisan item yang kuantiti makanannya kurang daripada atau sama dengan 30Fail – food_list.txt
Tiada Barang_Nama Kuantiti Harga
1 biji mangga 45 $3.45
2 biji epal 25 $2.45
3 nanas 5 $4.45
4 biji tomato 25 $3.45
5 Bawang 15 $1.45
6 Pisang 30 $3.45
Sintaks umum untuk menggunakan operator perbandingan dalam Awk adalah seperti berikut:
# ungkapan { tindakan }
Untuk mencapai tujuan tadi, laksanakan arahan berikut:
# awk '$3 <= 30 { printf "%s/t%s/n", $0,"**" ; } $3 > 30 { print $0 ;}' food_list.txt
Tiada Item_Nama` Kuantiti Harga
1 biji mangga 45 $3.45
2 biji epal 25 $2.45 **
3 biji nanas 5 $4.45 **
4 biji tomato 25 $3.45 **
5 Bawang 15 $1.45 **
6 Pisang 30 $3.45 **
Dalam contoh tadi, dua perkara penting berikut berlaku:
Dalam gabungan "ekspresi{action;}" pertama, $3 <= 30 { printf "%s/t%s/n", $0,"**" } cetak nombor yang kurang daripada atau sama dengan 30 baris, dan tambah (**) pada penghujung. Kuantiti item diperoleh melalui pembolehubah medan $3. Dalam gabungan "expression {action;}" kedua, $3 > 30 { print $0 ;} akan mengeluarkan baris yang bilangannya kurang daripada atau sama dengan 30 seperti sedia ada. Contoh lain:
# awk '$3 <= 20 { printf "%s/t%s/n", $0,"TRUE" } $3 > 20 { print $0 ;} ' food_list.txt
Tiada Barang_Nama Kuantiti Harga
1 biji mangga 45 $3.45
2 Epal 25 $2.45
3 nanas 5 $4.45 BENAR
4 biji tomato 25 $3.45
5 Bawang 15 $1.45 BENAR
6 Pisang 30 $3.45
Dalam contoh ini, kami ingin menandakan baris dengan kiraan kurang daripada atau sama dengan 20 dengan menambah (BENAR) pada penghujung baris.
RingkasanIni ialah panduan pengenalan kepada pengendali perbandingan di awk, jadi anda perlu mencuba pilihan lain dan menemui lebih banyak cara untuk menggunakannya.
Atas ialah kandungan terperinci Cara menggunakan operator perbandingan dalam awk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!