Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

AWK

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено зAwk)
AWK
Парадигмаскриптова,процедурна,подійно-орієнтована
Дата появи1977 Редагувати інформацію у Вікіданих
ТворціАльфред Ахо і Браян Керніган Редагувати інформацію у Вікіданих
РозробникАльфред Ахо,Пітер Вайнбергер,Браян Керніган
Останній релізIEEE Std 1003.1-2004 (POSIX) / 1985
Діалектиold awk oawk 1977,new awk nawk 1985,GNU Awk gawk
Під впливом відC,SNOBOL4,Bourne shell
Вплинула наPerl,Korn Shell (ksh93,dtksh,tksh),Lua
Операційна системаБагатоплатформова
Репозиторій вихідного кодуgithub.com/onetrueawk/awk Редагувати інформацію у Вікіданих
Вебсайтcm.bell-labs.com/cm/cs/awkbook/index.html

Awk — цемова програмування, призначена для сканування та обробки зразків. Основним застосуванням мови Awk є обробкатекстових документів. Вона гарно пристосована до малих проєктів, в яких необхідне форматування та обробка текстової інформації, і має деякі властивості, корисні для роботи збазами даних. Її основні функції обробки текстів вийшли з сімейства інструментів, подібних доgrep операційної системиЮнікс.

AWK розроблений у 1970-х роках і не зазнав значних змін з середини 1980-х років, в яких був визначений основний кістяк мови, що дало змогу протягом останніх десятиріч зберегти первісну стабільність і простоту мови. Незважаючи на похилий вік, AWK досі активно використовується адміністраторами для виконання рутинних робіт, пов'язаних зпарсингом різного роду текстових файлів і генерації нескладної статистики.

Структура програми на AWK

[ред. |ред. код]
Короткий довідник по POSIX AWK

«AWK — мова для обробки файлів тексту. Файл розглядається як послідовність записів, і без обумовлення кожен рядок є записом. Кожен рядок розбивається на послідовність полів, тому можна говорити про перше слово у рядку як перше поле, друге слово — друге поле і т. д.. Програма на AWK є послідовністю тверджень типу шаблон-дія. AWK читає по одному рядку за раз. Рядок сканується на відповідність кожному шаблону в програмі, і у разі збігу виконується відповідна дія.» —Альфред Ахо

Програма на AWK — послідовність пар типу шаблон-дія, що записуються як:

умова {дія }

деумова зазвичай є виразом, адія — послідовністю команд.Вхідні дані розділяються на записи, які без обумовлення розділяютьсясимволом нового рядка, у такий спосіб вхідні дані поділяються на рядки. Програма по черзі тестує кожен запис на відповідність кожній з умов і виконує дії, де вирази істинні.

Крім таких простих умов, як, наприклад,foo == 1 або/^foo/,умова може називатисяBEGIN абоEND, що відповідає виконанню перед початком читання записів і після закінчення обробки, відповідно.

Дія може складатися з послідовності операторів, що розділяється крапкою з комою, переведенням рядка або закриттям дужки.

Приклади програм

[ред. |ред. код]

Hello World

[ред. |ред. код]

Звичайна програмаHello World, написана на AWK:

BEGIN { print "Hello, world!" }

Потрібно звернути увагу, що тут не потрібно явного оператора виходуexit, тому що єдиним шаблоном єBEGIN; не здійснюється також обробка аргументів командного рядка.

Вивести всі рядки з довжиною понад 80 символів

[ред. |ред. код]

Вивести всі рядки з довжиною понад 80 символів. Зауважте, що дію не вказано явно, тож виконується дія за замовчуванням — виведення поточного рядка.

length($0) > 80

Вивести певні колонки кожного рядка

[ред. |ред. код]

Колонки розділені пробілами.$5 — п'ята колонка.

ls -l | awk '{print $5, $9}'

Посилання

[ред. |ред. код]
Рівень
Низькорівневі
Високорівневі
Загального
призначення
Серверні
Запитів до баз
даних[суперечливо 1]
Розмітки тавекторної
графіки
[суперечливо 1]
Синхронні
Символьних та
чисельних обчислень
Квантових обчислень
Логічні
Академічні
Езотеричні
  1. абНемає загальноприйнятого рішення, чи вважати усі ці мови саме мовами програмування
UNIX-команди, що запускаються в режимі командного рядка
Файлові системи:
Файли ікаталоги:
Процеси:
Користувачі:
Мережа:
Тексти:
Командний рядок:
Друк:
Пошук:
Різне:
Отримано зhttps://uk.wikipedia.org/w/index.php?title=AWK&oldid=43558364
Категорії:
Приховані категорії:

[8]ページ先頭

©2009-2025 Movatter.jp