runawk

Скріншот програми:
runawk
Дані програми:
Версія: 1.5.0
Дата завантаження: 19 Feb 15
Розробник: Aleksey Cheusov
Ліцензія: Безкоштовно
Популярність: 20

Rating: nan/5 (Total Votes: 0)

runawk є крихітний обгортка для AWK перекладача, що impements модульну систему і допомагає писати окремі програми AWK.
Мотивація
Після кількох років використання AWK для програмування я виявив, що, незважаючи на
його простота і обмеження AWK досить хороший для сценаріїв широкий
спектр різних завдань. AWK не так poweful як їх більше
колеги, як Perl, Ruby, TCL і інші, але вона має свої власні
переваги, такі як компактність, простота і доступність практично для всіх
UNIX-подібних систем. Я особисто хотів свої дані на ініціативи та
Маркер орієнтації, дуже корисна техніка для простої обробки тексту
комунальні послуги.
Але Зате! На жаль зачіпають тільки перекладачі не вистачає деяких важливих особливостей і
іноді працюють не так добре, як це підрахує бути.
Деякі проблеми я бачу (деякі з них, звичайно).
1) AWK відсутня підтримка модулів. Навіть якщо я створюю невеликі програми, я
часто хочуть, щоб використовувати функції, створені раніше і вже використовується в
інші сценарії. Тобто, це підрахує здорово orginise функції в
так званий бібліотек (модулів).
2) Для того, щоб передати аргументи #! / USR / бен / AWK -f скрипт (Не AWK
перекладача), необхідно prepand список
спори з - (два мінус зодіаку). На мій погляд, це виглядає погано.
Приклад:
awk_program:
І NBSP; & NBSP; & NBSP; #! / USR / бен / AWK -f
І NBSP; & NBSP; & NBSP; ПОЧАТИ {
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; для (я = 1; я І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; Printf "ARGV [% d] =% S", я, ARGV [я]
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; }
І NBSP; & NBSP; & NBSP; }
Shell сесія:
І NBSP; & NBSP; & NBSP; % Awk_program --opt1 --opt2
І NBSP; & NBSP; & NBSP; / USR / бен / AWK: невідомо варіант --opt1 ігноруються
І NBSP; & NBSP; & NBSP; / USR / бен / AWK: невідомо варіант --opt2 ігноруються
І NBSP; & NBSP; & NBSP; % Awk_program - --opt1 --opt2
І NBSP; & NBSP; & NBSP; ARGV [1] = - opt1
І NBSP; & NBSP; & NBSP; ARGV [2] = - OPT2
І NBSP; & NBSP; & NBSP; %
На мою думку, awk_program скрипт повинен працювати, як це (так само, як
нормальні програми DO)
І NBSP; & NBSP; & NBSP; % Awk_program --opt1 --opt2
І NBSP; & NBSP; & NBSP; ARGV [1] = - opt1
І NBSP; & NBSP; & NBSP; ARGV [2] = - OPT2
І NBSP; & NBSP; & NBSP; %
Це можливо за допомогою runawk.
3) При #! / USR / бен / AWK -f скрипт обробляє аргументи (параметри) і хоче
читати зі стандартного вводу, необхідно додати
/ DEV / стандартного введення (або `- ') в якості останнього аргументу явно.
Приклад:
awk_program:
І NBSP; & NBSP; & NBSP; #! / USR / бен / AWK -f
І NBSP; & NBSP; & NBSP; ПОЧАТИ {
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; якщо (ARGV [1] == "--flag") {
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; прапор = 1
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; ARGV [1] = "" # не читати файл з ім'ям "--flag"
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; }
І NBSP; & NBSP; & NBSP; }
І NBSP; & NBSP; & NBSP; {
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; друк "прапор =" прапор "$ 0 =" $ 0
І NBSP; & NBSP; & NBSP; }
Shell сесія:
І NBSP; & NBSP; & NBSP; % Ехо тест | awk_program - --flag
І NBSP; & NBSP; & NBSP; % Ехо тест | awk_program - --flag / DEV / стандартного вводу
І NBSP; & NBSP; & NBSP; прапор = 1 $ 0 = тест
І NBSP; & NBSP; & NBSP; %
В ідеалі awk_program повинні працювати, як це
І NBSP; & NBSP; & NBSP; Тест% відлуння | awk_program --flag
І NBSP; & NBSP; & NBSP; прапор = 1 $ 0 = тест
І NBSP; & NBSP; & NBSP; %
Всі ці probles вирішуються runawk, і саме тому я написав це.
Я також включають в себе кілька модулів для runawk розподіл які є
корисно для мене, і я сподіваюся, буде корисно для вас теж.
Установка
0) BSD марка не потрібно. Я називаю це просто "зробити", але його справжнє ім'я може
І NBSP; & NBSP; змінюватися і NBSP .; BУбедітесь, і pmake є можливі імена.
І NBSP; & NBSP; Якщо вам потрібно змінити параметри будівельні замовчуванням,
І NBSP; & NBSP; запустити зробити так
І NBSP; & NBSP; & NBSP; & NBSP; ENV [YOUR_ASSIGNMENTS] зробити <мета>
І NBSP; & NBSP; Дивіться приклад нижче розділ
1) Розпакуйте архів ви завантажили, як це
І NBSP; & NBSP; GZIP -dc runawk-X-Y-Z.tar.gz | смоли -xf-
2) CD-runawk X-Y-Z
3) зробити
4) (опціонально!) Зробити Install-каталоги
5) зробити установку
Є багато Makefile змінних, які можуть бути змінені під час
. Установка і NBSP; Власні змінні Runawk (в Все, що вони знаходяться на початку з
Makefile):
І NBSP; PREFIX і NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; - Де runawk встановлюється в
І NBSP; MODULESDIR і NBSP; & NBSP; & NBSP; & NBSP; - Каталог, в якому модулі будуть встановлені в
І NBSP; AWK_PROG і NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; - Шлях до AWK перекладача
І NBSP; STDIN_FILENAME - шлях до файлу стандартного вводу пристрої
Змінні BSD зробити (в найбільш часто використовуваних,
для всіх інших - в документації Зробіть х і .mk файлів)
І NBSP; BINDIR - де runawk сам виконуваний файл встановлюється в
І NBSP; MANDIR - де сторінки керівництва встановлюються в
І NBSP; BINOWN - runawk виконуваний власника
І NBSP; BINGRP - runawk виконуваний групу
І NBSP; MANOWN - чоловік власник сторінки
І NBSP; MANGRP - чоловік групи сторінок
Приклад:
І NBSP; & NBSP; ENV CC = GCC
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; PREFIX = / Головна / Чеусов / місцевий
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; LDFLAGS = '- L / USR / Упаковка / Lib -Wl, -rpath -Wl, / USR / Упаковка / Lib'
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; LDADD = -lextralib
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; CFLAGS = '- Werror -Wall "
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; CPPFLAGS = -I / USR / Упаковка / включити
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; BINOWN = Чеусов
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; BINGRP = Користувачі
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; MANOWN = Чеусов
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; MANGRP = Користувачі
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; MKCATPAGES = немає
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; & NBSP; зробити -s все Install-Dirs встановити

Що нового У цьому випуску:

  • Параметри -i, -I, і всі довгі варіанти були повністю вилучені.
  • опція -T був доданий для вкладок входу.
  • опція -v описано в довідковій сторінці.
  • Виправлені помилки в GCC компіляції попереджень.
  • Виправлені помилки в складанні з непустою MAKEOBJDIR.
  • Typo виправлення в нових, runcmd.awk, і людина сторінок.

Що нового у версії 1.4.4:

  • помилка при видаленні підкаталоги в тимчасовому каталозі було виправлена.
  • Покращення для runawk_modules.3.

Що нового у версії 1.4.3:

  • paexec (1) не використовувати систему ( 3) більше для видалення тимчасовий каталог.
  • функція print_help () була перенесена з модуля power_getopt.awk в init_getopt.awk.

Що нового у версії 1.4.2:

  • Ця версія додає runawk_modules.3 де всі модулі документовані, засуджує довгі опції, видаляє -i і -I варіанти, і включає в себе довідкові сторінки в розподілі архіву так pod2man не потрібно для будівництва.

Що нового у версії 1.4.0:

  • В exitnow.awk, exitnow (статус) Функція зараз закінчує виконання скрипта без ходовий кінець секції, навіть якщо стан == 0.
  • Новий модуль io.awk включає в себе функції is_ {файл, реж Exec, гніздо, FIFO, blockdev, chardev, символічну}, file_size і file_type. tokenre.awk має нову функцію splitre0 ().

Що нового у версії 1.3.2:

  • Внутрішні масиви тепер переїхав автоматично. Це усуває використання runawk (1) в поєднанні з xargs (1), наприклад, кішки files.txt |. Xargs runawk -е '...'

Що нового у версії 1.3.0:

  • Виправлення попередження компілятора повідомлення про Intel C.
  • виправлення для функції shquote () з модулів / shquote.awk.
  • Вихідний код проекту була реорганізована, що дозволяє легко встановлювати яку-небудь підпроекту :. Приклади, модулі, runawk, alt_getopt і DOC (TODO, довідкову і т.д. файли)

Що нового у версії 1.1.0:

  • опція -F був доданий
  • Нові ord.awwas ftrans_in.awk і glob.awk модулі були включені.
  • новий alt_getopt виконуваний був включений для розбору короткі і довгі варіанти в скриптах.
  • New min3, min4, min5, min_key, min_value і key_of_min_value (min.awk), а MAX3, Max4, MAX5, max_key, max_value і key_of_max_value були надані (max.awk) функції.
  • були додані нові семпли :. Приклади / demo_minmax, приклади / demo_tokenre3, приклади / demo_ftrans, приклади / demo_glob *
  • Нова функція була додана в multisub.awk.
  • Невеликі поліпшення були зроблені в процесі установки.

Що нового у версії 0.16.0:

  • були створені багато демонстраційних програм для більшості модулів runawk і вони в прикладах / підкаталог тепер. Новий MEGA модуль;-) power_getopt.awk дивіться документацію та демо-програма приклади / demo_power_getopt. Це робить можливості роботи дуже легко. Нові модулі: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk Незначні виправлення та покращення в dirname.awk і basename.awk. Тепер вони повністю сумісні з Dirname (1) і базового (1) RUNAWK встановлює такі змінні оточення для дитини AWK подпроцесса: RUNAWK_MODC - кількість модулів (-f ім'я файлу), переданий AWK RUNAWK_MODV_ - повний шлях до модуля #n , де N знаходиться в [0..RUNAWK_MODC) діапазоні. RUNAWK встановлює змінну оточення RUNAWK_ART_STDIN для дитини AWK подпроцесс 1, якщо додаткова / штучний `- 'був доданий в список доводів AWK-х років. Makefile: BУбедітесь, вим були видалені. Тепер Makefile повністю сумісний з FreeBSD виробництва. CLEANFILES мета використовується замість ручної правила Дрібні фікси в «test_all" цілі

Схожі програми

Hoc
Hoc

2 Jun 15

MAWK
MAWK

17 Feb 15

LavaPE
LavaPE

20 Feb 15

JRuby
JRuby

17 Feb 15

Інші програми розробника Aleksey Cheusov

mk-configure
mk-configure

20 Feb 15

DictEm
DictEm

20 Feb 15

LMDBG
LMDBG

20 Feb 15

paexec
paexec

20 Feb 15

runawk

Коментар не знайдено
додати коментар
Включіть картинки!
Пошук за категоріями