Linux-da Awk bilen goşma aňlatmalary nädip ulanmaly - 5-nji bölüm


Tutuşlygyna alnanda, bir şertiň ýerine ýetirilendigini ýa-da ýokdugyny barlanda ýönekeý sözlemlere seredýäris. Belli bir ýagdaýy barlamak üçin bir sözlemden has köp ulanmak isleseňiz näme etmeli?

Bu makalada, tekst ýa-da setirler süzülende ýagdaýy barlamak üçin goşma aňlatmalar diýlip atlandyrylýan birnäçe aňlatmalary nädip birleşdirip boljakdygyna göz aýlarys.

Awk-da goşma aňlatmalar (we) we || diýlip atlandyrylýan && ulanylýar. goşma operatorlar.

Goşma aňlatmalar üçin umumy sintaksis:

( first_expression ) && ( second_expression )

Bu ýerde, ähli aňlatmany dogry etmek üçin first_expression we second_expression dogry bolmaly.

( first_expression ) || ( second_expression) 

Bu ýerde, first_expression ýa-da second_expression aňlatmalarynyň biri, ähli aňlatmanyň dogry bolmagy üçin dogry bolmaly.

Üns beriň: Gaplaňy elmydama goşmagy ýatdan çykarmaň.

Aňlatmalar, awk seriýasynyň 4-nji bölüminde seredip geçen deňeşdirme operatorlarynyň kömegi bilen gurlup bilner.

Indi aşakdaky mysaldan peýdalanyp aýdyň düşüneliň:

Bu mysalda, tecmint_deals.txt atly tekst faýly bar, bu täsin Tecmint geleşikleriniň sanawyny öz içine alýar, şertnamanyň adyny, bahasyny we görnüşini öz içine alýar.

No      Name                                    Price           Type
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          Unknown
5       Nano_Tool_Pack                          $11.99          Unknown
6       Ditto_Bluetooth_Altering_Device         $33.00          Tech
7       Nano_Prowler_Mini_Drone                 $36.99          Tech 

Diňe 20 dollardan ýokary we her setiriň soňundaky (**) belgisini ulanyp\Tehnologiýa görnüşli çap we baýdak şertnamalaryny isleýändigimizi aýdyň.

Aşakdaky buýrugy işletmeli.

# 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	 *

Bu mysalda goşma sözlemde iki sözlemi ulandyk:

  1. Ilkinji aňlatma, ($3 ~ /^\$Fotosurat2-9) 20 $-dan ýokary bahalar bilen baglaşylan setirleri barlaýar we bahasy 3 $bolan bahanyň /^\$Foto2-9 [][[া0 0-9)* [0-9] $/
  2. Ikinji aňlatma, ($4 == “Tehnologiýa”); şertnamanyň\Tehnologiýa görnüşidigini ýa-da ýokdugyny barlaýar we diňe $4 bahasy\Tehnologiýa deň bolsa dogry bolýar.

Birinji aňlatma we ikinji aňlatma && operatorynyň ýörelgesinde aýdylyşy ýaly dogry bolsa, bir setir diňe (**) bilen bellik ediljekdigini ýadyňyzdan çykarmaň.

Gysgaça mazmun

Käbir şertler, islän zadyňyza gabat gelmek üçin elmydama goşma sözlemleri talap edýär. Deňeşdirme we goşma aňlatma operatorlarynyň ulanylyşyna düşüneniňizde, käbir kyn şertlere esaslanýan teksti ýa-da setirleri süzmek aňsat bolar.

Bu gollanmany peýdaly taparsyňyz we islendik soraglar ýa-da goşmaçalar üçin elmydama teswir ýazmagy ýatdan çykarmaň we aladalaryňyz şoňa görä çözüler.