Awk

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

Как использовать условный оператор в команде awk
Условный оператор используется на любом языке программирования для выполнения любого оператора на основе определенного условия. Условный оператор выполняется на основе значения true или false, когда операторы if-else и if-elseif используются для написания условного оператора в программировании. Awk поддерживает все типы условных операторов, как и другие языки программирования.  В этом руководстве показано, как в команде awk можно использовать различные условные операторы.

Синтаксис:

Синтаксис для четырех типов условных операторов упомянут ниже.

  1. если заявление
if (условие)
утверждение

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

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

еще
заявление-2

Оператор-1 выполняется, когда условие if истинно, а оператор-2 выполняется, когда if return false.

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

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

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

… .
еще
заявление-п

Этот условный оператор используется для выполнения оператора на основе нескольких условий if. Если первое условие ложно, то проверяется второе условие. Если второе условие ложно, то проверяется третье условие и т. Д. Если все условия возвращают false, он выполнит оператор части else.

  1. Тернарный (?:) оператор
(условие) ? оператор-1: оператор-2

Тернарный оператор может использоваться как альтернатива инструкции if-else. Если условие истинно, оператор-1 будет выполняться, а если условие ложно, то оператор-2 будет выполняться.

Пример-1: Использование простого if в awk

Создайте текстовый файл с именем Emplyee.текст со следующим содержанием. Предположим, вам нужно узнать название отдела, возраст и зарплату сотрудника с идентификатором 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 $, "is", 4 $, "\ n"

еще

print "Возраст", $ 1, "is", $ 3, "\ n"

 
' работник.текст

Выход:

Следующий вывод появится после запуска скрипта.

Пример-3: Использование if-elseif в сценарии awk

Создайте текстовый файл с именем person.txt со следующим содержанием.

человек.текст

JACKSON Мужской Бизнес
MARTIN Мужской сервисный держатель
ЛИЛИ Женский менеджер
ROBINSON Мужской генеральный директор

Создайте файл awk с именем if_elseif.awk с помощью следующего кода, чтобы напечатать любимый цвет каждого человека, чье имя существует в файле. Оператор If-elseif используется в скрипте для выполнения этой задачи. Скрипт прочитает значение первого поля файла, работник.текст и проверьте с конкретным значением. Если первый если условие становится ложным, тогда он проверит второй если состояние и так далее. Когда любое условие if становится истинным, тогда будет присвоено значение цвета. Если все условия становятся ложными, тогда Никто будет присвоено значение цвета. Любимый цвет каждого человека напечатает или «Никто не найден» напечатает, если имя человека не совпадает.

if_elseif.awk


name = $ 1;
if (name == "ДЖЕКСОН") color = "Синий";
иначе, если (name == "МАРТИН") color = "Черный";
иначе, если (name == "ЛИЛИЯ") color = "Красный";
иначе, если (имя == "РОБИНСОН") цвет = "Белый";
еще цвет = "Нет";
 
если (цвет!= "Нет") print "Любимый цвет", name, "is", color;
иначе напечатайте «Никто не найден»;
 

Выполните следующую команду, чтобы выполнить файл if_elseif.awk с человеком.текст

$ awk -f if_elseif.awk человек.текст

Выход:

Следующий вывод появится после запуска команды.

Пример 4: Использование тернарного оператора в awk

Третье поле человек.текст файл содержит профессию каждого человека. Следующий тернарный оператор считывает каждую строку файла и сопоставляет значение третьего поля с «Менеджер”. Если значение совпадает, то он напечатает имя человека, а в противном случае напечатает пол человека.

$ awk 'print ($ 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
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...