Giunsa Paggamit ang mga Operator sa Pagtandi sa Awk sa Linux - Bahin 4
Kung nag-atubang sa mga numerical o string value sa usa ka linya sa teksto, ang pagsala sa teksto o mga string gamit ang mga operator sa pagtandi magamit alang sa mga tiggamit sa Awk command.
Niini nga bahin sa serye sa Awk, atong tan-awon kung giunsa nimo pagsala ang teksto o mga kuwerdas gamit ang mga operator sa pagtandi. Kung ikaw usa ka programmer nan kinahanglan nga pamilyar ka sa mga operator sa pagtandi apan kadtong dili, tugoti ako nga ipasabut sa seksyon sa ubos.
Ang mga operator sa pagtandi sa Awk gigamit sa pagtandi sa bili sa mga numero o mga kuwerdas ug naglakip kini sa mosunod:
>
– labaw pa sa<
– ubos sa>=
– mas dako o katumbas sa<=
– ubos o katumbas sa==
– katumbas sa!=
– dili katumbas sasome_value ~/pattern/
– tinuod kung some_value motakdo sa patternsome_value !~/pattern/
– tinuod kon some_value dili motakdo sa pattern
Karon nga atong gitan-aw ang lain-laing mga operator sa pagtandi sa Awk, mas masabtan nato sila gamit ang usa ka pananglitan.
Niini nga pananglitan, aduna kitay file nga gihinganlan og food_list.txt nga usa ka lista sa pagpamalit alang sa lain-laing mga pagkaon ug gusto nakong i-flag ang mga pagkaon nga ang gidaghanon mas ubos o katumbas sa 20 pinaagi sa pagdugang (**)
sa katapusan sa matag linya.
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
Ang kinatibuk-ang syntax sa paggamit sa mga operator sa pagtandi sa Awk mao ang:
# expression { actions; }
Aron makab-ot ang tumong sa ibabaw, kinahanglan nakong ipadagan ang sugo sa ubos:
# 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 **
Sa pananglitan sa ibabaw, adunay duha ka importanteng butang nga mahitabo:
- Ang unang ekspresyon { aksyon ; } kombinasyon, $3 <= 30 { printf “%s\t%s\n”, $0,”**” ; } nag-imprenta sa mga linya nga ubos ang gidaghanon o katumbas sa 30 ug nagdugang ug (**) sa kataposan sa matag linya. Ang bili sa gidaghanon ma-access gamit ang $3 field variable.
- Ang ikaduhang ekspresyon {aksyon; } kombinasyon, $3 > 30 { print $0 ;} nag-imprenta sa mga linya nga wala mausab tungod kay ang ilang gidaghanon mas dako pa kay sa 30.
Usa pa ka pananglitan:
# 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
Sa kini nga pananglitan, gusto namon nga ipakita ang mga linya nga adunay gamay nga gidaghanon o katumbas sa 20 nga adunay pulong (TINUOD) sa katapusan.
Summary
Kini usa ka pasiuna nga panudlo sa pagtandi sa mga operator sa Awk, busa kinahanglan nimo nga sulayan ang daghang uban pang mga kapilian ug pagdiskobre pa.
Kung adunay mga problema nga imong giatubang o bisan unsang mga pagdugang nga naa sa imong hunahuna, unya ihulog ang usa ka komento sa seksyon sa komento sa ubos. Hinumdomi nga basahon ang sunod nga bahin sa serye sa Awk diin dad-on ko ikaw pinaagi sa mga compound nga ekspresyon.