Kif tuża Espressjonijiet komposti b'Awk fil-Linux - Parti 5


Kollha, konna nħarsu lejn espressjonijiet sempliċi meta niċċekkjaw jekk kundizzjoni ġietx sodisfatta jew le. X'jiġri jekk trid tuża aktar minn espressjoni waħda biex tiċċekkja għal kundizzjoni partikolari fiha?

F'dan l-artikolu, se nagħtu ħarsa lejn kif tista 'tgħaqqad espressjonijiet multipli msemmija bħala espressjonijiet komposti biex tivverifika għal kundizzjoni meta tiffiltra test jew kordi.

F'Awk, l-espressjonijiet komposti jinbnew bl-użu ta' && msemmi bħala (u) u l-|| imsejjaħ (jew) operaturi komposti.

Is-sintassi ġenerali għall-espressjonijiet komposti hija:

( first_expression ) && ( second_expression )

Hawnhekk, first_expression u second_expression għandhom ikunu veri biex l-espressjoni kollha tkun vera.

( first_expression ) || ( second_expression) 

Hawnhekk, waħda mill-espressjonijiet jew first_expression jew second_expression trid tkun vera biex l-espressjoni kollha tkun vera.

Attenzjoni: Ftakar li dejjem tinkludi l-parentesi.

L-espressjonijiet jistgħu jinbnew bl-użu tal-operaturi tal-paragun li ħares lejn il-Parti 4 tas-serje awk.

Issa ejja nifhmu ċar billi tuża eżempju hawn taħt:

F'dan l-eżempju, a jkollhom fajl test bl-isem tecmint_deals.txt, li fih lista ta 'xi kummerċ każwali aqwa Tecmint, jinkludi l-isem tal-ftehim, il-prezz u t-tip.

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 

Ngħidu li rridu biss kuntratti stampati u ta' bandiera li huma 'l fuq minn $20 u tat-tip \Tech bl-użu tas-sinjal (**) fl-aħħar ta' kull linja.

Ikollna bżonn inħaddmu l-kmand hawn taħt.

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

F'dan l-eżempju, użajna żewġ espressjonijiet f'espressjoni komposta:

  1. L-ewwel espressjoni, ($3 ~ /^\$[2-9][0-9]*\.[0-9][0-9]$/) ; jiċċekkja għal linji bi jittratta bi prezz 'l fuq minn $20, u huwa veru biss jekk il-valur ta' $3 li huwa l-prezz jaqbel mal-mudell /^\$[2-9][0-9]*\.[0-9] [0-9]$/
  2. U t-tieni espressjoni, ($4 == “Tech”); jiċċekkja jekk il-ftehim huwiex tat-tip \Tech u huwa minnu biss jekk il-valur ta' $4 ikun ugwali għal \Tech.

Ftakar, linja tkun immarkata biss bil-(**), jekk l-ewwel espressjoni u t-tieni espressjoni huma veri kif jgħid il-prinċipju tal-operatur &&.

Sommarju

Xi kundizzjonijiet dejjem jeħtieġu bini ta 'espressjonijiet komposti għalik biex jaqblu eżattament ma' dak li trid. Meta tifhem l-użu ta 'tqabbil u operaturi ta' espressjoni kompost allura, il-filtrazzjoni ta 'test jew kordi bbażati fuq xi kundizzjonijiet diffiċli ssir faċli.

Nittama li ssib din il-gwida utli u għal kwalunkwe mistoqsija jew żidiet, dejjem ftakar li tħalli kumment u t-tħassib tiegħek jiġi solvut kif xieraq.