Awk

Как да използвам условен израз в команда awk

Как да използвам условен израз в команда awk
Условният оператор се използва във всеки програмен език, за да изпълни всеки оператор въз основа на определено условие. Условният оператор се изпълнява въз основа на стойността true или false, когато операторите if-else и if-elseif се използват за писане на условния оператор в програмирането. Awk поддържа всички видове условни изрази като другите езици за програмиране.  Как различни условни изрази могат да се използват в awk команда е показано в този урок.

Синтаксис:

Синтаксисът за четири типа условни изрази е споменат по-долу.

  1. ако изявление
ако (условие)
изявление

Операторът се изпълнява, когато условието if връща true.

  1. if-else изявление
ако (условие)
изявление-1

друго
изявление-2

Операторът-1 се изпълнява, когато условието if е вярно, а изразът-2 се изпълнява, когато връща false.

  1. изявление if-elseif
ако (условие)
изявление-1

elseif
изявление-2

elseif
изявление-3

.. .
друго
изявление-n

Тази условна инструкция се използва за изпълнение на оператор, базиран на множество условия if. Ако първото условие е невярно, то проверява второто условие. Ако второто условие е невярно, то проверява третото условие и т.н. Ако всички условия върнат false, тогава той ще изпълни изявлението на else part.

  1. Тройка (?:) оператор
(състояние) ? изявление-1: изявление-2

Тройният оператор може да се използва като алтернатива на оператора if-else. Ако условието е вярно, операторът-1 ще се изпълни и ако условието е невярно, тогава операторът-2 ще се изпълни.

Пример-1: Използване на просто, ако е в awk

Създайте текстов файл с име emlyee.текст със следното съдържание. Да предположим, че трябва да разберете името на отдела, възрастта и заплатата на служителя, чийто идентификатор е 11002.

служител.текст

11001 Продажби 45 $ 3000
11002 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 скрипт.

Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...
Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...
OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...