Синтаксис:
Синтаксисът за четири типа условни изрази е споменат по-долу.
- ако изявление
изявление
Операторът се изпълнява, когато условието if връща true.
- if-else изявление
изявление-1
друго
изявление-2
Операторът-1 се изпълнява, когато условието if е вярно, а изразът-2 се изпълнява, когато връща false.
- изявление if-elseif
изявление-1
elseif
изявление-2
elseif
изявление-3
.. .
друго
изявление-n
Тази условна инструкция се използва за изпълнение на оператор, базиран на множество условия if. Ако първото условие е невярно, то проверява второто условие. Ако второто условие е невярно, то проверява третото условие и т.н. Ако всички условия върнат false, тогава той ще изпълни изявлението на else part.
- Тройка (?:) оператор
Тройният оператор може да се използва като алтернатива на оператора if-else. Ако условието е вярно, операторът-1 ще се изпълни и ако условието е невярно, тогава операторът-2 ще се изпълни.
Пример-1: Използване на просто, ако е в awk
Създайте текстов файл с име emlyee.текст със следното съдържание. Да предположим, че трябва да разберете името на отдела, възрастта и заплатата на служителя, чийто идентификатор е 11002.
служител.текст
11001 Продажби 45 $ 300011002 HR 32 $ 1500
11003 Маркетинг 26 $ 1200
11004 HR 25 $ 2500
В следния скрипт се използва просто условие if за търсене на идентификатора 11002 в първото поле на файла. Ако условието стане вярно, то ще отпечата стойностите на другите полета на съответния ред, в противен случай нищо няма да бъде отпечатано.
$ awk 'ако ($ 1 == "11002")
print "Име на отдела:", $ 2, "\ n";
print "Възраст:", $ 3, "\ n";
print "Заплата:", $ 4, "\ n";
'служител.текст
Изход:
Идентификационният номер 1102 съществува във файла. И така, отпечата останалите ценности на служителя.
Пример-2: Използване на if-else в awk
Да предположим, че искате да отпечатате информация за заплатата на служителите, чиято възраст е по-малка или равна на 40 и да отпечатате информацията за възрастта за други служители. Следният awk скрипт може да изпълни тази задача. Има само един служител в служител.текст досие, чиято възраст е над 40, а възрастта на всички останали служители е по-малка от 40.
$ awk 'ако ($ 3 <= 40)
print "Заплатата на", $ 1, "е", $ 4, "\ n"
друго
print "Възраст на", $ 1, "е", $ 3, "\ n"
'служител.текст
Изход:
След стартиране на скрипта ще се появи следният изход.
Пример-3: Използване на if-elseif в awk скрипт
Създайте текстов файл с име на човек.txt със следното съдържание.
човек.текст
JACKSON Мъжки бизнесMARTIN мъжки притежател на услуга
LILY Жена мениджър
ROBINSON Мъж изпълнителен директор
Създайте awk файл с име if_elseif.awk със следния код, за да отпечатате любимия цвят на всеки човек, чието име съществува във файла. Изпълнението if-elseif се използва в скрипта за изпълнение на тази задача. Скриптът ще прочете стойността на първото поле на файла, служител.текст и проверете с определена стойност. Ако първият ако условието се превръща в false, тогава ще провери второто ако състояние и така нататък. Когато някое от условията стане вярно, тогава ще бъде зададена стойност на цвета. Ако всички условия станат неверни тогава Нито един ще бъде присвоена като стойност на цвета. Любимият цвят на всеки човек ще отпечата или „Няма намерен човек“ ще отпечата, ако няма име на човек.
if_elseif.awk
име = $ 1;
if (name == "JACKSON") color = "Blue";
иначе if (name == "MARTIN") color = "Black";
иначе if (name == "LILY") color = "Red";
иначе if (name == "ROBINSON") color = "White";
else цвят = "Няма";
ако (цвят!= "Няма") print "Любимият цвят на", име, "е", цвят;
else print "Няма намерен човек";
Изпълнете следната команда, за да изпълните файла if_elseif.awk с човек.текст
$ awk -f if_elseif.неудобен човек.текстИзход:
След изпълнението на командата ще се появи следният изход.
Пример-4: Използване на тройния оператор в awk
Третото поле на човек.текст досието съдържа професията на всеки човек. Следващият тернарен оператор чете всеки ред от файла и съответства на стойността на третото поле с „Мениджър”. Ако стойността съвпада, тогава ще се отпечата името на човека и в противен случай ще се отпечата полът на човека.
$ awk 'печат ($ 3 == "Мениджър") ? „Името е„ $ 1: „Полът е„ $ 2 “.текстИзход:
След изпълнението на скрипта ще се появи следният изход. Един човек с „Мениджърска професия съществува в човек.текст. И така, името на един човек се отпечатва, а полът се отпечатва за други лица.
Пример-5: Използване на множество условия в оператора if
Логически ИЛИ и Логически И могат да се използват за дефиниране на множество условия в условния оператор на awk скрипт. Следващият awk скрипт чете всеки ред от служител.текст и проверява възрастта и обозначението с определени стойности. Логическото И се използва в ако състояние. Когато възрастовата стойност е по-голяма или равна на 30 и обозначението е „HR“, ще се отпечатат съответните идентификатор и заплата на служителя.
$ awk 'if ($ 3> = 30 && $ 2 == "HR") print "Идентификационен номер на служителя:",$ 1, "и", "Заплата:", $ 4, "\ n"; 'служител.текст
Изход:
След изпълнението на скрипта ще се появи следният изход. Съществува само един служител с обозначението „HR” в служител.текст. Идентификационната информация и информацията за заплатата на този служител е отпечатана тук.
Заключение:
Най-често използваните условни изрази на всяко стандартно програмиране се поддържат от команда awk. Как можете да използвате единични и множество условия в awk е обяснено с помощта на много прости примери тук. Надявам се, след като практикува тези примери, обучаемият ще може правилно да използва условния израз в awk скрипт.