Операционные системы - статьи

Встроенные функции


Встроенные функции:

sin (expr)синус expr

cos (expr)косинус expr
exp (expr)возведение в степень expr

log (expr)натуральный логорифм expr

sqrt (expr)извлечение корня expr

int (expr)целая часть числа



length (s)длина строки s

printf (fmt, ...)форматирование (аналогично Си) по спецификации fmt.

substr (s, m, n)подстрока в n символов строки s, начинающаяся с m.

getline ()чтение следующей строки.

0конец файла, иначе 1.

index (s1, s2)номер позиции, с которой s1 совпадает с s2, иначе 0.

split (s, M, c)строка s разбивается элементы массива M по разделителю c (по умолчанию FS=" "); функция возвращает число полей.

Примеры.

1) awk ' BEGIN {FS = "."; a=0}

length ($1) > 8 {print (length ($1), $0);

a++

}

END {print ("Найдено строк: " a) }' f-awk

Результат:

9 Сидоров С.К. 1979 40

10 Хведоров И.Х. 1970 60

Найдено строк: 2

Здесь поля разделяются по ".", выбираются

строки у которых длина первого поля больше 8-ми, и их длина "length

($1)" печатается перед строкой "$0".

2) awk '{i=split($0, Name, ".");

for (j=1; j<=i; j++)

print ("Name[" j "]=" Name[j])

}' f-awk

Результат:

Name[1]=Иванов И

Name[2]=И

Name[3]= 1980 50

Name[1]=Петров А

Name[2]=В

Name[3]= 1979 40

Name[1]=Сидоров С

Name[2]=К

Name[3]= 1979 40

Name[1]=Хведоров И

Name[2]=Х

Name[3]= 1970 60

3) awk '{print (length)}' f-awk

Результат:

22

22

22

22

Поскольку все строки были выровнены пробелами, а

в длине строки учитываются все символы до конца строки.

4) awk '{printf "%7.2f %s\n", NR, $0}' f-awk

echo

awk '{printf "\t%s %s \n", NR, $0}' f-awk

Результат:

1.00 Иванов И.И. 1980 50

2.00 Петров А.В. 1979 40

3.00 Сидоров С.К. 1979 40

4.00 Хведоров И.Х. 1970 60

1 Иванов И.И. 1980 50

2 Петров А.В. 1979 40

3 Сидоров С.К. 1979 40

4 Хведоров И.Х. 1970 60



Содержание раздела