Bii o ṣe le Lo Aṣẹ atẹle pẹlu Awk ni Lainos - Apá 6
Ninu apakan kẹfa ti Awk jara, a yoo wo ni lilo atẹle
pipaṣẹ, eyiti o sọ fun Awk lati foju gbogbo awọn ilana ati awọn ọrọ ti o ku ti o ti pese, ṣugbọn dipo ka laini titẹ sii ti nbọ.
Aṣẹ atẹle
ṣe iranlọwọ fun ọ lati yago fun ṣiṣe ohun ti Emi yoo tọka si bi awọn igbesẹ asiko-akoko ni pipaṣẹ pipaṣẹ kan.
Lati ni oye bi o ṣe n ṣiṣẹ, jẹ ki a gbero faili kan ti a pe ni food_list.txt ti o dabi eleyi:
No Item_Name Price Quantity 1 Mangoes $3.45 5 2 Apples $2.45 25 3 Pineapples $4.45 55 4 Tomatoes $3.45 25 5 Onions $1.45 15 6 Bananas $3.45 30
Ṣe akiyesi ṣiṣe pipaṣẹ atẹle ti yoo ṣe ifihan awọn ohun ounjẹ ti iye wọn kere ju tabi dọgba pẹlu 20 pẹlu ami (*)
ni opin ila kọọkan:
# awk '$4 <= 20 { printf "%s\t%s\n", $0,"*" ; } $4 > 20 { print $0 ;} ' food_list.txt No Item_Name Price Quantity 1 Mangoes $3.45 5 * 2 Apples $2.45 25 3 Pineapples $4.45 55 4 Tomatoes $3.45 25 5 Onions $1.45 15 * 6 Bananas $3.45 30
Ofin ti o wa loke n ṣiṣẹ bi atẹle:
- Ni akọkọ, o ṣayẹwo boya opoiye, aaye kẹrin ti ila titẹ sii kọọkan kere tabi dọgba pẹlu 20, ti iye kan ba ba ipo yẹn mu, o tẹjade ati ṣe ifihan pẹlu ami
(*)
ni ipari nipa lilo ikosile ọkan:$4 <= 20
- Ẹlẹẹkeji, o ṣayẹwo boya aaye kẹrin ti laini titẹ sii kọọkan tobi ju 20 lọ, ati pe ti ila kan ba pade ipo ti o tẹjade ni lilo ikosile meji:
$4> 20
Ṣugbọn iṣoro kan wa nibi, nigbati iṣafihan akọkọ ba ṣiṣẹ, laini ti a fẹ ṣe asia ni a tẹjade ni lilo: {printf\"% s% s \ ", $0, \" **\";}
ati lẹhinna ni igbesẹ kanna, a tun ṣayẹwo ikosile keji eyiti o di ifosiwewe akoko asiko.
Nitorinaa ko si iwulo lati ṣiṣẹ ikosile keji, $4> 20
lẹẹkansii lẹhin titẹ awọn ila ti a ti ta tẹlẹ ti a ti tẹ ni lilo ikosile akọkọ.
Lati baju iṣoro yii, o ni lati lo atẹle
aṣẹ bi atẹle:
# awk '$4 <= 20 { printf "%s\t%s\n", $0,"*" ; next; } $4 > 20 { print $0 ;} ' food_list.txt No Item_Name Price Quantity 1 Mangoes $3.45 5 * 2 Apples $2.45 25 3 Pineapples $4.45 55 4 Tomatoes $3.45 25 5 Onions $1.45 15 * 6 Bananas $3.45 30
Lẹhin ti a tẹ ila laini titẹ sii kan ni lilo $4 <= 20
{printf\"% s% s \ ", $0, \" *\"; atẹle;}
, atẹle
pipaṣẹ ti o wa pẹlu yoo ṣe iranlọwọ foju foju ikosile keji $4> 20
{ tẹjade $0;}
, nitorinaa ipaniyan n lọ si laini titẹ sii ti nbọ laisi nini akoko asiko lori ṣayẹwo boya iye wọn tobi ju 20 lọ.
Atẹle ti o tẹle jẹ pataki pupọ ni kikọ awọn ofin ṣiṣe daradara ati nibiti o ba jẹ dandan, o le lo nigbagbogbo lati yara iyara ipaniyan ti iwe afọwọkọ kan. Mura fun apakan ti atẹle ti jara nibiti a o wo ni lilo titẹsi boṣewa (STDIN) bi kikọ sii fun Awk.
Ṣe ireti pe o wa eyi bi o ṣe le ṣe iranlọwọ fun iranlọwọ ati pe o le fi awọn ero rẹ sinu kikọ nigbagbogbo nipa fifi ọrọ silẹ ni abala ọrọ ni isalẹ.