Bii o ṣe le Lo Awọn ifọrọhan Apo pẹlu Awk ni Lainos - Apá 5


Ni gbogbo igba, a ti n wo awọn ọrọ ti o rọrun nigbati o n ṣayẹwo boya ipo kan ti pade tabi rara. Kini ti o ba fẹ lo diẹ sii lẹhinna ọkan ikosile lati ṣayẹwo fun ipo kan pato ninu?

Ninu àpilẹkọ yii, a yoo wo bawo ni o ṣe le ṣopọpọ awọn ọrọ pupọ ti a tọka si bi awọn ifihan idapọ lati ṣayẹwo ipo kan nigba sisẹ ọrọ tabi awọn okun.

Ni Awk, awọn itumọ ọrọ ti wa ni itumọ ti lilo && tọka si bi (ati) ati || tọka si bi (tabi) awọn oniṣẹ apopọ.

Itumọ gbogbogbo fun awọn itumọ ọrọ ni:

( first_expression ) && ( second_expression )

Nibi, first_expression ati second_expression gbọdọ jẹ otitọ lati jẹ ki gbogbo ikosile jẹ otitọ.

( first_expression ) || ( second_expression) 

Nibi, ọkan ninu awọn ọrọ boya first_expression tabi second_expression gbọdọ jẹ otitọ fun gbogbo ikasi lati jẹ otitọ.

Išọra: Ranti lati ni akọmọ nigbagbogbo.

Awọn ifihan le ṣee kọ nipa lilo awọn oniṣẹ afiwera ti a wo ni Apakan 4 ti jara awk.

Jẹ ki a ni oye bayi nipa lilo apẹẹrẹ ni isalẹ:

Ninu apẹẹrẹ yii, a ni faili ọrọ kan ti a npè ni tecmint_deals.txt , eyiti o ni atokọ ti diẹ ninu awọn iṣowo Tecmint laileto, o pẹlu orukọ adehun naa, idiyele ati iru.

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 

Sọ pe a fẹ nikan tẹjade ati awọn adehun asia ti o wa loke $20 ati ti iru\"Tech" nipa lilo ami (**) ni ipari ila kọọkan.

A yoo nilo lati ṣiṣe aṣẹ ni isalẹ.

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

Ninu apẹẹrẹ yii, a ti lo awọn ọrọ meji ni ikasi apapọ:

  1. Ifihan akọkọ, ($3 ~/^$$~/$~ 2-9] [0-9] $.. ṣayẹwo awọn fun awọn ila pẹlu awọn iṣowo pẹlu idiyele loke $20, ati pe o jẹ otitọ nikan ti iye ti $3 eyiti o jẹ idiyele baamu apẹẹrẹ/[0-9] $/
  2. Ati ikosile keji, ($4 == "Tech"); ṣayẹwo boya adehun naa jẹ ti iru\"Tech" ati pe o jẹ otitọ nikan ti iye ti $4 ba dọgba si\"Tech".

Ranti, laini kan yoo ṣe ifihan nikan pẹlu (**) , ti iṣafihan akọkọ ati ikosile keji jẹ otitọ bi awọn ipinlẹ ipilẹ ti oniṣẹ && nikan.

Akopọ

Diẹ ninu awọn ipo nigbagbogbo nilo awọn itumọ ile iṣọpọ fun ọ lati baamu gangan ohun ti o fẹ. Nigbati o ba loye lilo lafiwe ati awọn oniṣẹ iṣalaye apapọ lẹhinna, sisẹ ọrọ tabi awọn okun ti o da lori diẹ ninu awọn ipo iṣoro yoo di irọrun.

Ireti pe o rii itọsọna yii wulo ati fun eyikeyi awọn ibeere tabi awọn afikun, nigbagbogbo ranti lati fi ọrọ silẹ ati pe ibakcdun rẹ yoo yanju ni ibamu.