Ahoj

Ako používať podmienené vyhlásenie v príkaze awk

Ako používať podmienené vyhlásenie v príkaze awk
Podmienený príkaz sa používa v ľubovoľnom programovacom jazyku na vykonanie ľubovoľného príkazu na základe konkrétnej podmienky. Podmienený príkaz sa vykoná na základe hodnoty true alebo false, keď sa na zápis podmieneného príkazu v programovaní použijú príkazy if-else a if-elseif. Awk podporuje všetky typy podmienených príkazov ako ostatné programovacie jazyky.  Ako sa dajú rôzne podmienené príkazy použiť v príkaze awk, ukazuje tento návod.

Syntax:

Syntax pre štyri typy podmienených príkazov je uvedená nižšie.

  1. ak vyhlásenie
ak (podmienka)
vyhlásenie

Príkaz sa vykoná, keď podmienka if vráti hodnotu true.

  1. vyhlásenie if-else
ak (podmienka)
vyhlásenie-1

else
vyhlásenie-2

Príkaz-1 sa vykoná, keď je podmienka if pravdivá, a príkaz-2 sa vykoná, ak príkaz if vráti hodnotu false.

  1. vyhlásenie if-elseif
ak (podmienka)
vyhlásenie-1

ináč Ak
vyhlásenie-2

ináč Ak
vyhlásenie-3

… .
else
vyhlásenie-n

Tento podmienený príkaz sa používa na vykonanie príkazu založeného na podmienke multiple if. Ak je prvá podmienka nepravdivá, skontroluje sa druhá podmienka. Ak je druhá podmienka nepravdivá, skontroluje sa tretia podmienka atď. Ak sa všetky podmienky vrátia ako nepravdivé, vykoná sa príkaz else part.

  1. Ternárne (?:) operátor
(podmienka) ? vyhlásenie-1: vyhlásenie-2

Ako alternatívu príkazu if-else možno použiť ternárny operátor. Ak je podmienka pravdivá, príkaz-1 sa vykoná a ak je podmienka nepravdivá, vykoná sa príkaz-2.

Príklad-1: Použitie jednoduchého príkazu if v awk

Vytvorte textový súbor s názvom zamestnanec.TXT s nasledujúcim obsahom. Predpokladajme, že musíte zistiť názov oddelenia, vek a plat zamestnanca, ktorého identifikačné číslo je 11002.

zamestnanec.TXT

11001 tržby 45 3000 dolárov
11002 HR 32 1 500 dolárov
11003 Marketing 26 1 200 dolárov
11004 HR 25 2 500 dolárov

V nasledujúcom skripte sa na vyhľadanie ID 11002 v prvom poli súboru použije podmienka typu if. Ak sa podmienka stane pravdivou, vytlačí hodnoty ostatných polí príslušného riadku, inak sa nevytlačí nič.

$ awk '
ak ($ ​​1 == "11002")

vytlačiť "Názov oddelenia:", 2 $, "\ n";
vypísať "Vek:", 3 $, "\ n";
vytlačiť "Plat:", 4 $, "\ n";
 

zamestnanec.TXT

Výkon:

ID, 1102 existuje v súbore. Vytlačilo sa teda ďalšie hodnoty zamestnanca.

Príklad-2: Použitie if-else v awk

Predpokladajme, že chcete vytlačiť informácie o plate zamestnancov, ktorých vek je menší alebo rovný 40, a vytlačiť údaje o veku ostatných zamestnancov. Túto úlohu môže vykonať nasledujúci skript awk. V spoločnosti je iba jeden zamestnanec zamestnanec.TXT súbor, ktorého vek je viac ako 40 rokov a vek všetkých ostatných zamestnancov je menej ako 40 rokov.

$ awk '
ak (3 doláre <= 40)

vytlačiť „Plat“, 1 $, „je“, 4 $, „\ n“

inak

vytlačiť „Vek“, 1 $, „je“, 3 $, „\ n“

 
zamestnanec.TXT

Výkon:

Po spustení skriptu sa zobrazí nasledujúci výstup.

Príklad-3: Použitie if-elseif v skripte awk

Vytvorte textový súbor s menom osoba.txt s nasledujúcim obsahom.

osoba.TXT

JACKSON Mužské podnikanie
Mužský držiteľ služby MARTIN
Manažérka LILY
ROBINSON Muž, výkonný riaditeľ

Vytvorte awk súbor s názvom if_elseif.awk s nasledujúcim kódom na vytlačenie obľúbenej farby každej osoby, ktorej meno v súbore existuje. Na vykonanie tejto úlohy sa v skripte použije príkaz if-elseif. Skript prečíta hodnotu prvého poľa súboru, zamestnanec.TXT a skontrolujte konkrétnu hodnotu. Ak prvý ak stav sa stane nepravdivým, potom skontroluje druhý ak stav a pod. Ak sa splní podmienka typu if, potom sa priradí hodnota farby. Ak sa stanú neplatnými všetky podmienky Žiadne bude priradená ako hodnota farby. Na obľúbenú farbu každej osoby sa vytlačí resp „Žiadna osoba sa nenašla“ sa vytlačí, ak sa nezhoduje žiadne meno osoby.

if_elseif.awk


meno = 1 dolár;
if (name == "JACKSON") color = "Blue";
else if (name == "MARTIN") color = "Black";
inak if (name == "LILY") color = "Red";
else if (name == "ROBINSON") color = "White";
else color = "None";
 
ak (farba!= "None") print "Obľúbená farba", name, "je", color;
else print "Nenašla sa žiadna osoba";
 

Spustením nasledujúceho príkazu vykonajte súbor if_elseif.awk s osobou.TXT

$ awk -f if_elseif.awk osoba.TXT

Výkon:

Po spustení príkazu sa objaví nasledujúci výstup.

Príklad-4: Použitie ternárneho operátora v awk

Tretie pole osoba.TXT spis obsahuje povolanie každej osoby. Nasledujúci ternárny operátor prečíta každý riadok súboru a porovná hodnotu tretieho poľa s „Manažér“. Ak sa hodnota zhoduje, vytlačí sa meno osoby a inak sa vytlačí jej pohlavie.

$ awk 'print ($ 3 == "Správca") ? „Meno je„ $ 1: “Pohlavie je„ $ 2 “osoba.TXT

Výkon:

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Jedna osoba s „Manažérskou profesiou existuje v osoba.TXT. Vytlačí sa meno jednej osoby a pohlavie sa vytlačí pre ďalšie osoby.

Príklad-5: Použitie viacerých podmienok v príkaze if

Logické ALE a Logické A možno použiť na definovanie viacerých podmienok v podmienenom príkaze skriptu awk. Nasledujúci awk skript prečíta každý riadok zamestnanec.TXT a skontroluje vek a označenie s konkrétnymi hodnotami. Logické AND sa používa v ak stav. Ak je veková hodnota vyššia alebo rovná 30 a označenie je „HR“, vytlačí sa príslušné ID a plat zamestnanca.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") vytlačiť "ID zamestnanca:",
$ 1, "a", "Plat:", $ 4, "\ n"; 'zamestnanec.TXT

Výkon:

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Existuje iba jeden zamestnanec s označením „HR“ v jazyku zamestnanec.TXT. ID a platové informácie tohto zamestnanca sú vytlačené tu.

Záver:

Najčastejšie použitie podmieneného príkazu ľubovoľného štandardného programovania podporuje príkaz awk. Ako môžete v awk použiť jednu a viac podmienok, je tu vysvetlené na veľmi jednoduchých príkladoch. Dúfam, že po precvičení týchto príkladov bude študent schopný správne používať podmienené tvrdenia v awk skripte.

Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...
Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...
Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...