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:
- 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]$/
- 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.