Встроенные функции в AWK
AWK имеет множество встроенных функций для числовых, строковых, операций ввода и вывода. Awk имеет следующие два типа категорий встроенных функций высокого уровня:
- Встроенные функции для числовых операций.
- Встроенные функции для строковых операций.
Предварительное условие - команда AWK в Unix / Linux
Встроенные функции для числовых операций
1. Функция awk int (n) : функция int () дает нам целую часть данного аргумента. Это дает наименьшую целую часть заданного n. n - любое число с плавающей точкой или без нее. Если в качестве аргумента указать целое число, функция вернет то же самое.
- Примеры:
Input : $ awk "BEGIN{print int(3.534);print int(4);print int(-5.223);print int(-5);}" Output : 3 4 -5 -5
2. Функция awk log (n) : функция log () выдает натуральный логарифмический (с основанием e ) заданный размер n. log () возвращает логарифмическое значение, только если n - положительное число. Если мы дадим какое-либо недопустимое число (даже отрицательное), это вызовет ошибку.
- Примеры:
Ввод: $ awk 'BEGIN {печать журнала (3.534); печать журнала (4); печать журнала (0); печать журнала (-5); печать журнала (-1);}' Выход: 1.26243 1,38629 -inf awk: cmd. строка: 1: предупреждение: журнал: получен отрицательный аргумент -5 нан awk: cmd. строка: 1: предупреждение: журнал: получен отрицательный аргумент -1 нан
Объяснение: Возвращает -inf, если задано ноль, и выдает ошибку nan, если задано отрицательное число.
3. Функция awk sqrt (n) : функция sqrt () возвращает положительный корень для заданного целого числа n. Эта функция также принимает положительное число.
- Примеры:
Ввод: $ awk 'BEGIN {print sqrt (16); print sqrt (0); print sqrt (-12);}' Выход: 4 0 awk: cmd. строка: 1: предупреждение: sqrt: вызывается с отрицательным аргументом -12 -нан
Объяснение: Он возвращает ошибку nan, если в качестве аргумента указано отрицательное число.
4. Функция awk sin (n) : функция sin () выдает значение синуса n, где n выражается в радианах .
- Примеры:
Input : $ awk "BEGIN{print sin(-60);print sin(90);print sin(45);}" Output :0.304811 0.893997 0.850904
5. Функция awk cos (n) : функция cos () выдает значение косинуса n, где n выражается в радианах .
- Примеры:
Ввод: $ awk 'BEGIN {print cos (-60); print cos (90); print cos (45);}' Выход: -0,952413 -0,448074 0,525322
Встроенные функции для строковых операций
1. Индекс awk (str1, str2) Функция: выполняет поиск в строке str1 первых вхождений строки str2 и возвращает позицию в символах, где это вхождение начинается в строке str1 . Строковые индексы в awk начинаются с 1 .
- Пример:
Ввод: awk 'BEGIN {индекс печати ("Графика", "ph"); индекс печати ("Университет", "abc")} ' Выход: 4 0
Объяснение: Возвращает 0, если str2 не найдена в str1.
2. awk length (строка) Функция: Функция length () вычисляет длину строки.
- Пример:
Ввод: $ awk 'BEGIN {длина печати ("Университет графической эры")}' Выход: 22
Объяснение: Длина строки также включает пробелы.
3. awk substr (s, p, n) Функция: функция length () используется для извлечения функции подстроки из строки. Возвращает подстроку строки s в начальной позиции p до максимальной длины n . Если n не указано, используется остальная часть строки из p .
- Пример:
Вход: $ awk 'BEGIN {print substr ("Университет графической эры", 9)}' Продукт: Университет Эры.
Вход: $ awk 'BEGIN {print substr ("Университет графической эры", 9, 8)}' Продукт: Era Univ.
4. awk tolower (s) Функция: переводит все символы верхнего регистра в строке s в нижний регистр и возвращает новую строку.
- Пример:
Ввод: $ awk 'BEGIN {print tolower ("GEEKSFORGEEKS")}' Выход: geeksforgeeks
5. awk toupper (s) Функция: переводит все символы нижнего регистра в строке s в верхний регистр и возвращает новую строку.
- Пример:
Ввод: $ awk 'BEGIN {print toupper ("geeksforgeeks")}' Выход: GEEKSFORGEEKS
6. awk split (string, array, fieldsep) Функция: Делит строку на части, разделенные fieldsep , и сохраняет эти части в массиве . Первая часть хранится в массиве [1] , вторая часть - в массиве [2] и так далее. Строковое значение третьего аргумента fieldsep описывает, где разделять строку .
- Пример:
Ввод: $ awk 'BEGIN {string = "Моя национальность - индиец"; fieldsep = ""; n = разделение (строка, массив, fieldsep); for (i = 1; i <= n; i ++) {printf ("% s n", array [i]);}} ' Выход: Мой Национальность Является Индийский
Объяснение: Приведенный выше сценарий разбивает предложение на слова, используя пробел в качестве символа, разделяющего слова.