Awk

A feltételes utasítás használata az awk parancsban

A feltételes utasítás használata az awk parancsban
A feltételes utasítást bármely programozási nyelven használják egy adott feltétel alapján végrehajtott bármely utasítás végrehajtására. A feltételes utasítás a true vagy false érték alapján hajt végre, ha if-else és if-elseif utasításokat használunk a feltételes utasítás programozásához. Az Awk mindenféle feltételes utasítást támogat, mint más programozási nyelveket.  Ez az oktatóanyag megmutatja, hogy a feltételes utasítások hogyan használhatók az awk parancsban.

Szintaxis:

Az alábbiakban négy feltételes utasítás típusának szintaxisát említjük.

  1. ha állítás
if (feltétel)
nyilatkozat

Az utasítás akkor hajtódik végre, ha az if feltétel igazra tér vissza.

  1. if-else nyilatkozat
if (feltétel)
nyilatkozat-1

más
nyilatkozat-2

Az utasítás-1 akkor hajtódik végre, ha az if feltétel igaz, és a-2 utasítás akkor hajt végre, ha az false visszatér.

  1. if-elseif állítás
if (feltétel)
nyilatkozat-1

elseif
nyilatkozat-2

elseif
nyilatkozat-3

… .
más
nyilatkozat-n

Ez a feltételes utasítás egy többszörös, ha feltétel alapú utasítás végrehajtására szolgál. Ha az első feltétel hamis, akkor ellenőrzi a második feltételt. Ha a második feltétel hamis, akkor ellenőrzi a harmadik feltételt stb. Ha minden feltétel hamis eredményt ad, akkor végrehajtja a else part állítását.

  1. Ternary (?:) operátor
(feltétel) ? nyilatkozat-1: nyilatkozat-2

A Ternary operátor az if-else utasítás alternatívájaként használható. Ha az true feltétel, akkor az -1 utasítás végrehajtja, és ha a false feltétel akkor a -2 utasítás teljesül.

1. példa: Egyszerű használata, ha awk

Hozzon létre egy szöveges fájlt alkalmazott.txt a következő tartalommal. Tegyük fel, hogy meg kell találnia annak az osztálynak a nevét, életkorát és fizetését, amelynek azonosítója 11002.

munkavállaló.txt

11001 Értékesítés 45, 3000 USD
11002 HR 32 1500 USD
11003 Marketing 26 1200 USD
11004 HR 25 2500 USD

Egy egyszerű if feltételt használunk a következő szkriptben az 11002 azonosító keresésére a fájl első mezőjében. Ha a feltétel igaz lesz, akkor kinyomtatja a megfelelő sor többi mezőjének értékét, különben semmi nem kerül kinyomtatásra.

$ awk '
if ($ 1 == "11002")

print "Osztály neve:", $ 2, "\ n";
print "Age:", $ 3, "\ n";
print "Fizetés:", $ 4, "\ n";
 

'alkalmazottja.txt

Kimenet:

Az 1102 azonosító létezik a fájlban. Tehát kinyomtatta az alkalmazott egyéb értékeit.

2. példa: if-else használata az awk fájlban

Tegyük fel, hogy ki akarja nyomtatni azoknak az alkalmazottaknak a fizetési adatait, akiknek életkora nem haladja meg a 40 évet, és kinyomtatják az életkorra vonatkozó információkat más alkalmazottak számára. A következő awk szkript képes elvégezni ezt a feladatot. Csak egy alkalmazott van bent munkavállaló.txt akinek életkora meghaladja a 40-et, és az összes többi alkalmazott életkora kevesebb, mint 40 év.

$ awk '
ha (3 USD <= 40)

print "A fizetés", $ 1, "is", $ 4, "\ n"

más

print "A kor", $ 1, "is", $ 3, "\ n"

 
'alkalmazottja.txt

Kimenet:

A következő kimenet jelenik meg a szkript futtatása után.

3. példa: Az if-elseif használata az awk szkriptben

Hozzon létre egy személy nevű szövegfájlt.txt a következő tartalommal.

személy.txt

JACKSON férfi vállalkozás
MARTIN férfi szolgálattartó
LILY női menedzser
ROBINSON Férfi vezérigazgató

Hozzon létre egy awk fájlt if_elseif.awk a következő kóddal kinyomtathatja a fájlban szereplő nevek kedvenc színét. A feladat végrehajtásához az if-elseif utasítást használja a szkript. A szkript beolvassa a fájl első mezőértékét, munkavállaló.txt és ellenőrizze egy adott értékkel. Ha az első ha az állapot hamis lesz, akkor ellenőrzi a másodikat ha állapot és így tovább. Ha bármely feltétel teljesül, akkor színértéket rendelünk hozzá. Ha minden feltétel hamis lesz, akkor Egyik sem színértékként lesz hozzárendelve. Minden ember kedvenc színe kinyomtatja vagy "Nincs személy" kinyomtatja, ha egyetlen személy neve sem egyezik.

if_elseif.awk


név = $ 1;
if (név == "JACKSON") szín = "kék";
else if (név == "MARTIN") color = "fekete";
else if (name == "LILY") color = "Red";
else if (név == "ROBINSON") color = "Fehér";
else color = "Nincs";
 
ha (szín!= "Nincs") print "A" kedvenc színe ", név," van ", szín;
máshol nyomtassa ki: "Nincs személy";
 

Futtassa a következő parancsot az if_elseif fájl végrehajtásához.awk személyesen.txt

$ awk -f if_elseif.awk személy.txt

Kimenet:

A következő kimenet jelenik meg a parancs futtatása után.

4. példa: Terner operátor használata az awk-ban

A harmadik mező személy.txt fájl tartalmazza az egyes személyek szakmáját. A következő háromszintű operátor elolvassa a fájl minden sorát, és a harmadik mező értékét aMenedzser”. Ha az érték megegyezik, akkor kinyomtatja a személy nevét, különben pedig a személy nemét.

$ awk 'print ($ 3 == "Kezelő") ? "A név:" $ 1: "A" nem "$ 2 személy.txt

Kimenet:

A szkript végrehajtása után a következő kimenet jelenik meg. Egy személy rendelkezik „Menedzser szakmával a személy.txt. Tehát egy személy neve kinyomtatva, a többi nem pedig nem.

5. példa: Több feltétel használata az if utasításban

A Logical OR és a Logical AND segítségével több feltétel is meghatározható az awk script feltételes utasításában. A következő awk szkript beolvassa az egyes sorokat munkavállaló.txt és bizonyos értékekkel ellenőrzi az életkort és a megjelölést. A logikai ÉS alkalmazást a ha feltétel. Ha az életkor értéke meghaladja vagy meghaladja a 30-at, és a megjelölés „HR”, akkor a megfelelő munkavállalói azonosító és fizetés kerül kinyomtatásra.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") print "Alkalmazói azonosító:",
$ 1, "és", "Fizetés:", $ 4, "\ n"; 'alkalmazott.txt

Kimenet:

A szkript végrehajtása után a következő kimenet jelenik meg. Csak egy alkalmazott van, a „HR” megnevezéssel munkavállaló.txt. Az alkalmazott azonosítási és fizetési információit itt nyomtatja ki.

Következtetés:

Bármely szokásos program feltételes utasításának leggyakoribb felhasználását az awk parancs támogatja. Az egyszerű és több feltétel használatát az awk-ban itt nagyon egyszerű példákkal magyarázzuk. Remélem, hogy ezeknek a példáknak a gyakorlása után a tanuló képes lesz megfelelően használni a feltételes utasítást az awk szkriptben.

HD Remastered Games for Linux, amelyeknek soha nem volt korábban Linux kiadásuk
Számos játékfejlesztő és kiadó a régi játékok HD remasterjével áll elő a franchise élettartamának meghosszabbítása érdekében. Kérjük, hogy a rajongók ...
Az AutoKey használata a Linux játékok automatizálásához
Az AutoKey egy asztali automatizáló segédprogram Linux és X11 rendszerekhez, Python 3, GTK és Qt programozással. A parancsfájlok és a MACRO funkcióina...
Az FPS-számláló megjelenítése a Linux-játékokban
A Linux játék komoly lendületet kapott, amikor a Valve 2012-ben bejelentette a Linux támogatását a Steam kliensnek és játékaiknak. Azóta sok AAA és in...