Linux-da Awk bilen deňeşdirme operatorlaryny nädip ulanmaly - 4-nji bölüm
Tekstiň hataryndaky san ýa-da setir bahalary bilen iş salyşanyňyzda, deňeşdirme operatorlaryny ulanyp tekst ýa-da setirleri süzmek Awk buýruk ulanyjylary üçin amatly bolýar.
“Awk” seriýasynyň bu bölüminde deňeşdirme operatorlaryny ulanyp teksti ýa-da setirleri nädip süzüp biljekdigiňize göz aýlarys. Eger programmist bolsaňyz, deňeşdirme operatorlary bilen eýýäm tanyş bolmaly, ýöne ýoklar, aşakdaky bölümde düşündiriň.
Awkdaky deňeşdirme operatorlary sanlaryň ýa-da setirleriň bahasyny deňeşdirmek üçin ulanylýar we olar aşakdakylary öz içine alýar:
-
>
- -den uly -
<
- -den az -
>=
- ondan uly ýa-da deňdir -
<=
- -den az ýa-da deňdir -
==
- deňdir -
!=
- bilen deň däl -
some_value ~/pattern/
- käbir_value nagyş bilen gabat gelýän bolsa dogry -
some_value! ~/pattern/
- käbir_ baha nagyş bilen gabat gelmese dogry
Awkdaky dürli deňeşdirme operatorlaryna seredenimizden soň, olara mysal ulanyp has gowy düşüneliň.
Bu mysalda, dürli iýmit önümleriniň söwda sanawy bolan food_list.txt atly bir faýlymyz bar we (**)
goşmak bilen mukdary 20-den az ýa-da deň bolan iýmit önümlerini bellemek isleýärin. her setiriň soňunda.
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
Awk-da deňeşdirme operatorlaryny ulanmak üçin umumy sintaksis:
# expression { actions; }
Aboveokardaky maksada ýetmek üçin aşakdaky buýrugy ýerine ýetirmeli bolaryn:
# 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 **
Aboveokardaky mysalda bolup geçýän iki möhüm zat bar:
- Birinji aňlatma {hereket; } kombinasiýa, $3 <= 30 {printf “% s\t% s\n”, $0, ”**”; 30 30-dan az ýa-da deň mukdarda setirleri çap edýär we her setiriň soňuna (**) goşýar. Mukdar bahasyna $3 meýdan üýtgeýjisini ulanyp bolýar.
- Ikinji aňlatma {hereket; } kombinasiýa, $3> 30 {çap 0 $;} setirleri üýtgemeýär, sebäbi mukdary 30-dan köp.
Moreene bir mysal:
# 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
Bu mysalda, ahyrynda (TRUE) sözi bilen az mukdarda ýa-da 20-e deň bolan setirleri görkezmek isleýäris.
Gysgaça mazmun
Bu Awkdaky operatorlary deňeşdirmek üçin giriş sapagy, şonuň üçin başga-da köp warianty synap görmeli we has köp zady açmaly.
Islän kynçylyklaryňyz ýa-da ýadyňyzda bolsa goşmaçalar bar bolsa, aşakdaky teswir bölüminde teswir ýazyň. Awk seriýasynyň indiki bölümini okamagy ýatdan çykarmaň, bu ýerde sizi goşma sözler bilen alyp bararyn.