Bii o ṣe le Lo Awk lati Ṣatunkọ Ọrọ tabi Awọn gbolohun ọrọ Lilo Awọn iṣe pataki
Ni apakan kẹta ti Awk aṣẹ, a yoo wo wo sisẹ ọrọ tabi awọn gbolohun ọrọ ti o da lori awọn ilana pato ti olumulo kan le ṣalaye.
Nigbakuran, nigba sisẹ ọrọ, o fẹ tọka awọn ila kan lati faili ifawọle tabi awọn ila ti awọn okun ti o da lori ipo ti a fifun tabi lilo apẹẹrẹ kan pato ti o le baamu. Ṣiṣe eyi pẹlu Awk rọrun pupọ, o jẹ ọkan ninu awọn ẹya nla ti Awk ti iwọ yoo rii iranlọwọ.
Jẹ ki a wo apẹẹrẹ kan ni isalẹ, sọ pe o ni atokọ rira fun awọn ohun ounjẹ ti o fẹ ra, ti a pe ni akojọ awọn ounjẹ-iye. O ni atokọ atẹle ti awọn ohun ounjẹ ati awọn idiyele wọn.
$ cat food_prices.list No Item_Name Quantity Price 1 Mangoes 10 $2.45 2 Apples 20 $1.50 3 Bananas 5 $0.90 4 Pineapples 10 $3.46 5 Oranges 10 $0.78 6 Tomatoes 5 $0.55 7 Onions 5 $0.45
Ati lẹhinna, o fẹ tọka ami kan (*)
lori awọn ohun ounjẹ ti idiyele wọn tobi ju $2
lọ, eyi le ṣee ṣe nipa ṣiṣe pipaṣẹ wọnyi:
$ awk '/ *$[2-9]\.[0-9][0-9] */ { print $1, $2, $3, $4, "*" ; } / *$[0-1]\.[0-9][0-9] */ { print ; }' food_prices.list
Lati iṣẹjade ti o wa loke, o le rii pe ami wa ni (*)
ni ipari awọn ila ti o ni awọn ohun ounjẹ, mango ati ope. Ti o ba ṣayẹwo awọn idiyele wọn, wọn wa loke $2.
Ninu apẹẹrẹ yii, a ti lo awọn ilana meji:
- ekini:
/*\$[2-9] \. [0-9] [0-9] */
n gba awọn ila ti o ni idiyele ohun ti ounjẹ tobi ju $2 ati - ẹẹkeji:
/*\ $=0-1]\.00-9] [0-9] */
wa fun awọn ila pẹlu idiyele ohun ti ounjẹ ti o kere ju $2.
Eyi ni ohun ti o ṣẹlẹ, awọn aaye mẹrin wa ninu faili naa, nigbati apẹẹrẹ ọkan ba pade laini pẹlu idiyele ohun ounjẹ ti o tobi ju $2, o tẹ gbogbo awọn aaye mẹrin mẹrin ati ami (*)
ni ipari laini bi asia.
Apẹẹrẹ keji n tẹ awọn ila miiran pẹlu owo ounje ti o kere ju $2 lọ bi wọn ṣe han ninu faili iforukọsilẹ, akojọ awọn ounjẹ_ ọja.
Ni ọna yii o le lo awọn iṣe pato apẹẹrẹ lati ṣe iyọkuro awọn nkan ounjẹ ti o ni idiyele loke $2, botilẹjẹpe iṣoro wa pẹlu iṣelọpọ, awọn ila ti o ni ami (*)
ko ṣe kika bi iyoku ti awọn ila ṣiṣe ṣiṣejade ko ṣalaye to.
A rii iṣoro kanna ni Apakan 2 ti jara awk, ṣugbọn a le yanju rẹ ni awọn ọna meji:
1. Lilo pipaṣẹ titẹjade eyiti o jẹ ọna gigun ati alaidun nipa lilo aṣẹ ni isalẹ:
$ awk '/ *$[2-9]\.[0-9][0-9] */ { printf "%-10s %-10s %-10s %-10s\n", $1, $2, $3, $4 "*" ; } / *$[0-1]\.[0-9][0-9] */ { printf "%-10s %-10s %-10s %-10s\n", $1, $2, $3, $4; }' food_prices.list
2. Lilo aaye $0. Awk nlo oniyipada 0 lati tọju gbogbo laini titẹ sii. Eyi jẹ ọwọ fun ipinnu iṣoro naa loke ati pe o rọrun ati yara bi atẹle:
$ awk '/ *$[2-9]\.[0-9][0-9] */ { print $0 "*" ; } / *$[0-1]\.[0-9][0-9] */ { print ; }' food_prices.list
Ipari
Iyẹn ni fun bayi ati awọn wọnyi ni awọn ọna ti o rọrun fun sisẹ ọrọ nipa lilo apẹẹrẹ pato iṣe ti o le ṣe iranlọwọ ni sisọ awọn ila ti ọrọ tabi awọn gbolohun ọrọ ni faili kan nipa lilo pipaṣẹ Awk.
Ṣe ireti pe iwọ yoo rii nkan yii ti o wulo ki o ranti lati ka abala atẹle ti jara eyiti yoo dojukọ lori lilo awọn oniṣẹ iṣapẹẹrẹ nipa lilo irinṣẹ awk.