![5 Shell skripti Linux iesācējiem, lai iemācītos Shell programmēšanu](/f/fbcf8f8e67495eb7f8366908d8da303c.png?width=100&height=100)
Strādājot ar skaitliskām vai virkņu vērtībām teksta rindā, ir noderīga teksta vai virkņu filtrēšana, izmantojot salīdzināšanas operatorus. Awk komandu lietotājiem.
Šajā daļā Awk sērija, mēs apskatīsim, kā jūs varat filtrēt tekstu vai virknes, izmantojot salīdzināšanas operatorus. Ja esat programmētājs, tad jums jau ir jābūt pazīstamam ar salīdzināšanas operatoriem, bet tiem, kas to nedara, ļaujiet man paskaidrot tālāk esošajā sadaļā.
Awk salīdzināšanas operatori tiek izmantoti, lai salīdzinātu skaitļu vai virkņu vērtību, un tie ietver:
>
- pārāks nekā<
- mazāk nekā>=
- lielāks vai vienāds ar<=
- mazāks vai vienāds ar==
- vienāds ar!=
- nav vienāds ardažas_vērtības ~ / raksts /
- taisnība, ja dažas vērtības atbilst modelimkāda_vērtība! ~ / modelis /
- taisnība, ja kāda_vērtība neatbilst modelimTagad, kad esam apskatījuši dažādus salīdzināšanas operatorus Awk, ļaujiet mums tos labāk izprast, izmantojot piemēru.
Šajā piemērā mums ir fails ar nosaukumu food_list.txt
kas ir iepirkšanās saraksts dažādiem pārtikas produktiem, un es vēlētos atzīmēt pārtikas preces, kuru daudzums ir mazāks vai vienāds ar 20, pievienojot(**)
katras rindas beigās.
Fails - food_list.txt
Nr Item_Name Daudzums Cena. 1 mango 45 $ 3.45. 2 āboli 25 $ 2,45. 3 Ananāsi 5 4,45 ASV dolāri. 4 tomāti 25 $ 3,45. 5 sīpoli 15 USD 1,45. 6 banāni 30 $ 3,45.
Vispārējā sintakse salīdzināšanas operatoru izmantošanai Awk ir šāda:
# izteiksme {darbības; }
Lai sasniegtu iepriekš minēto mērķi, man būs jāizpilda zemāk esošā komanda:
# awk '$ 3 <= 30 {printf "%s \ t%s \ n", $ 0, "**"; } $ 3> 30 {print $ 0;} 'food_list.txtNr Item_Name` Daudzuma cena. 1 mango 45 $ 3.45. 2 āboli 25 $ 2,45 ** 3 Ananāsi 5 4,45 USD ** 4 tomāti 25 $ 3,45 ** 5 sīpoli 15 $ 1,45 ** 6 banāni 30 $ 3,45 **
Iepriekš minētajā piemērā notiek divas svarīgas lietas:
Vēl viens piemērs:
# awk '$ 3 <= 20 {printf "%s \ t%s \ n", $ 0, "TRUE"; } $ 3> 20 {print $ 0;} 'food_list.txt Nr Item_Name Daudzums Cena. 1 mango 45 $ 3.45. 2 āboli 25 $ 2,45. 3 Ananāsi 5 $ 4,45 PATIESA. 4 tomāti 25 $ 3,45. 5 Sīpoli 15 $ 1,45 PATIESA. 6 banāni 30 $ 3,45.
Šajā piemērā mēs vēlamies norādīt līnijas, kuru daudzums ir mazāks vai vienāds ar 20 ar vārdu (PATIESA) beigās.
Šī ir ievada apmācība salīdzināšanas operatoriem Awk, tāpēc jums ir jāizmēģina daudzas citas iespējas un jāatklāj vairāk.
Ja rodas kādas problēmas vai domājat par papildinājumiem, atstājiet komentāru zemāk esošajā komentāru sadaļā. Atcerieties izlasīt nākamo Awk sērijas daļu, kurā es iepazīstināšu jūs ar saliktiem izteicieniem.