runawk

Софтуер снимки:
runawk
Софтуер детайли:
Версия: 1.5.0
Дата на качване: 19 Feb 15
Розробник: Aleksey Cheusov
Разрешително: Безплатно
Популярност: 76

Rating: 1.0/5 (Total Votes: 1)

runawk е малка опаковка за AWK интерпретатор, че impements модулна система и помага да пише на самостоятелни програми Awk.
<Силен> МОТИВАЦИЯ
След години на използване AWK за програмиране, аз открих, че въпреки
неговата простота и ограничения AWK е достатъчно добър, за написване на широк
набор от различни задачи. AWK не е толкова Мощни като тяхната по-голяма
колеги като Perl, Ruby, TCL и други, но тя има своя собствена
предимства като компактност, простота и достъпност на почти всички
UNIX-подобни системи. Аз лично също така данни задвижване своя характер и
символичен ориентация, много полезна техника за проста обработка на текст
комунални услуги.
Само Че! За съжаление Awk преводачи липсват някои важни особености и
понякога не работи толкова добре, колкото го whould бъде.
Някои проблеми, които виждам (някои от тях, разбира се).
1) AWK липсва подкрепа за модули. Дори и да се създадат малки програми, I
често искате да използвате функциите, създадени по-рано и вече се използва в
други скриптове. Това означава, че whould страхотно да orginise функции в
т.нар библиотеки (модули).
2) За да се премине аргументи да #! / ЮЕсАр / хамбар / AWK -F скрипт (да не AWK
преводач), че е необходимо да prepand списък на
аргументи - (две минус Втора вноска). По мое мнение, това изглежда зле.
<Силен> Пример:
awk_program:
& Nbsp; & Nbsp; & Nbsp; #! / ЮЕсАр / хамбар / AWK -F
& Nbsp; & Nbsp; & Nbsp; BEGIN {
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; за (I = 1; I & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; ФОРМАТ "ARGV [% г] =% S", I, ARGV [в]
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; }
& Nbsp; & Nbsp; & Nbsp; }
Shell сесия:
& Nbsp; & Nbsp; & Nbsp; % Awk_program --opt1 --opt2
& Nbsp; & Nbsp; & Nbsp; / ЮЕсАр / хамбар / AWK: неизвестен опция --opt1 игнорирани
& Nbsp; & Nbsp; & Nbsp; / ЮЕсАр / хамбар / 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) Когато #! / ЮЕсАр / хамбар / AWK -F скрипт дръжки аргументи (опции) и иска
да се чете от стандартния вход, е необходимо да се добавят
/ Dev / стандартния вход (или `- ') като последният аргумент еднозначно.
<Силен> Пример:
awk_program:
& Nbsp; & Nbsp; & Nbsp; #! / ЮЕсАр / хамбар / AWK -F
& Nbsp; & Nbsp; & Nbsp; BEGIN {
& 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.; bmake и 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) (не е задължително!) Да инсталират-директории
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; Мандир - където страници от ръководствата са инсталирани на
& Nbsp; BINOWN - runawk изпълним собственик
& Nbsp; BINGRP - runawk изпълним група
& Nbsp; MANOWN - собственик мъж страница
& Nbsp; MANGRP - мъж страница група
<Силен> Пример:
& Nbsp; & Nbsp; ENV CC = GCC
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; ПРЕФИКС = / Начало / cheusov / местно
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; LDFLAGS = '- L / ЮЕсАр / PKG / либералните -Wl, -rpath -Wl, / ЮЕсАр / PKG / либералните "
& 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 / ЮЕсАр / PKG / включва
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; BINOWN = cheusov
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; BINGRP = потребители
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; MANOWN = cheusov
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; MANGRP = потребители
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; MKCATPAGES = няма
& Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; & Nbsp; направи -s всички инсталирай директории инсталират

Какво ново в тази версия:

  • Опциите -i, -I, и всички дълги варианти са напълно отстранени.
  • -T The опция е добавен за табово вход.
  • Опцията-V е документирано в страницата човек.
  • Поправени предупреждения GCC компилация.
  • Поправени компилация с непразна MAKEOBJDIR.
  • Типо поправки в нови, 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 и док (TODO, README и др файлове)

Какво ново във версия 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 модули и те са в примери / поддиректория сега. New 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) и basename (1) RUNAWK поставя следните променливи на обкръжението за дете AWK подпроцес на: RUNAWK_MODC - A брой модули (-F името на файла) пусна към AWK RUNAWK_MODV_ - Пълна пътека до #n на модул , където п е в [диапазон 0..RUNAWK_MODC). RUNAWK задава променлива RUNAWK_ART_STDIN среда за детето AWK подпроцес до 1, ако допълнително / изкуствена `- 'е добавен към списъка на аргументите Awk си. Makefile: bmake-изъм бяха отстранени. Сега Makefile е напълно съвместим с FreeBSD грим. CLEANFILES целта се използва вместо ръчно изработени правила Мала корекция в мишена "test_all"

Подобен софтуер

Shed Skin
Shed Skin

15 Apr 15

Darning
Darning

20 Feb 15

Trad4
Trad4

11 May 15

bigloo
bigloo

20 Feb 15

Друг софтуер на разработчика Aleksey Cheusov

mk-configure
mk-configure

20 Feb 15

DictEm
DictEm

20 Feb 15

LMDBG
LMDBG

20 Feb 15

Коментари към runawk

Коментари не е намерена
добавите коментар
Включете на изображения!
Търсене по категория