runawk

Screenshot Software:
runawk
Szczegóły programowe:
Wersja: 1.5.0
Filmu: 19 Feb 15
Wywoływacz: Aleksey Cheusov
Licencja: Wolny
Popularność: 20

Rating: nan/5 (Total Votes: 0)

runawk jest małe otoki dla AWK tłumacza, że ​​impements modułową i pomaga pisać samodzielnych programów AWK.
Motywacja
Po latach korzystania z AWK do programowania odkryłem, że mimo
jego prostota i ograniczenia AWK jest wystarczająco dobre dla skryptów szeroka
zakres różnych zadań. AWK nie jest tak, jak ich większe poweful
odpowiedników, takich jak Perl, Ruby, TCL i innych, ale ma swoje własne
Zalety takie jak kompaktowość, prostoty i dostępności na prawie wszystkie
UNIX, takich jak systemy. Chciałbym osobiście również jego charakter i opartych na danych
Orientacja token bardzo przydatna technika prostego przetwarzania tekstu
narzędzia.
Ale! Niestety awk tłumaczy brakuje kilka ważnych cech i
czasami nie działa tak dobrze, jak whould być.
Niektóre problemy widzę (niektóre z nich, oczywiście).
1) AWK brak wsparcia dla modułów. Nawet jeśli utworzyć małe programy, ja
często chcą korzystać z funkcji utworzonych wcześniej i już używany w
inne skrypty. To znaczy, że whould wspaniale orginise funkcje w
tak zwane biblioteki (moduły).
2) W celu przekazania argumenty #! / Usr / bin / awk -f skrypt (nie awk
tłumacza), konieczne jest prepand listę
Argumenty z - (dwa). signes minus Moim zdaniem wygląda to źle.
Przykład:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; BEGIN {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; for (i = 1; i & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; printf "ARGV [% d] =% s", i ARGV [i]
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Shell sesji:
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: nieznany opcja --opt1 ignorowane
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: nieznany opcja --opt2 ignorowane
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - OPT1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - OPT2
& Nbsp; & nbsp; & nbsp; %
Moim zdaniem awk_program skrypt powinien działać tak (podobnie jak
normalne programy zrobić)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - OPT1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - OPT2
& Nbsp; & nbsp; & nbsp; %
Jest to możliwe przy użyciu runawk.
3) Jeśli #! / Usr / bin / awk -f skrypt obsługuje argumentów (opcje) i chce
czytać ze standardowego wejścia, należy dodać
/ Dev / stdin (lub '-') jako ostatni argument jawnie.
Przykład:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; BEGIN {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; if (ARGV [1] == "--flag") {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Flaga = 1
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ARGV [1] = "" #, aby nie czytać plik o nazwie "--flag"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; print "Flaga =" Flaga "$ 0 =" 0 dolarów
& Nbsp; & nbsp; & nbsp; }
Shell sesji:
& Nbsp; & nbsp; & nbsp; % Echo Test | awk_program - --flag
& Nbsp; & nbsp; & nbsp; % Echo Test | awk_program - --flag / dev / stdin
& Nbsp; & nbsp; & nbsp; flag = $ 1 0 = Test
& Nbsp; & nbsp; & nbsp; %
Idealnie awk_program powinny działać tak
& Nbsp; & nbsp; & nbsp; % Echo Test | awk_program --flag
& Nbsp; & nbsp; & nbsp; flag = $ 1 0 = Test
& Nbsp; & nbsp; & nbsp; %
Wszystkie te probles są rozwiązywane przez runawk i dlatego napisałem to.
I to także kilka modułów runawk rozdzielcze,
przydatne dla mnie i mam nadzieję, że będą pomocne dla Ciebie.
INSTALACJA
0) make BSD jest wymagane. Nazwać to po prostu "zrobić", ale jego prawdziwe nazwisko może
& Nbsp; & nbsp; różnią. & nbsp; BSkonfiguruj i pmake są możliwe nazwy.
& Nbsp; & nbsp; Jeśli chcesz zmienić domyślne opcje budowlanych,
& Nbsp; & nbsp; uruchomić się w ten
& Nbsp; & nbsp; & nbsp; & nbsp; env [YOUR_ASSIGNMENTS], aby
& Nbsp; & nbsp; Patrz przykład sekcję poniżej
1) tar Rozpakuj pobraniu tak
& Nbsp; & nbsp; gzip -dc runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) dokonać
4) (opcjonalnie!) Make install-katalogi
5) make install
Istnieje wiele zmiennych Makefile, że można zmienić w trakcie
. Instalacja & nbsp; Zmienne własne Runawk (wszyscy są na początku
Makefile):
& Nbsp; PREFIKSÓW & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Gdzie runawk jest zainstalowany
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Katalog, w którym zainstalowane są na moduły
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Droga do awk tłumacza
& Nbsp; STDIN_FILENAME - ścieżka do pliku urządzenia stdin
Zmienne make BSD jest (najczęściej używane,
dla wszystkich innych - patrz dokumentacja dokonać za i plików .mk)
& Nbsp; BINDIR - gdzie runawk wykonywalny zainstalowany jest sam w sobie
& Nbsp; Mandir - gdzie są zainstalowane strony podręcznika
& Nbsp; BINOWN - runawk wykonywalny właściciela
& Nbsp; BINGRP - runawk grupę wykonywalny
& Nbsp; MANOWN - mężczyzna strona Właściciel
& Nbsp; MANGRP - mężczyzna grupa stron
Przykład:
& Nbsp; & nbsp; CC = gcc env
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Prefix = / home / cheusov / local
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; LDFLAGS = "- L / usr / pkg / lib -Wl, -rpath -Wl, / usr / pkg / 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 / pkg / include
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; BINOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; BINGRP = użytkowników
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = użytkowników
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = brak
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; dokonać -s wszystkim instalacja-dirs zainstalować

Co nowego w tym wydaniu:

  • Opcje -i, -I, i wszystkie długie opcje zostały całkowicie usunięte.
  • Opcja -T dodano dla kartami wejścia.
  • Opcja -v jest udokumentowane na stronie man.
  • Poprawki dla ostrzeżenia gcc kompilacji.
  • Poprawki do kompilacji z niepustym MAKEOBJDIR.
  • Poprawki Typo nowy, runcmd.awk i stron człowieka.

Co nowego w wersji 1.4.4:

  • Błąd w usuwaniu podkatalogów w katalogu tymczasowym było stałe.
  • Ulepszenia runawk_modules.3.

Co nowego w wersji 1.4.3:

  • paexec (1) nie korzysta z systemu ( 3) już do usuwania katalogu tymczasowego.
  • print_help function () została przeniesiona z modułu power_getopt.awk do init_getopt.awk.

Co nowego w wersji 1.4.2:

  • W tej wersji dodano runawk_modules.3 gdzie wszystkie moduły są udokumentowane, deprecates długich opcji, usuwa -i oraz -I opcje i zawiera strony podręcznika w archiwum dystrybucji tak pod2man nie jest potrzebny do budynku.

Co nowego w wersji 1.4.0:

  • W exitnow.awk, exitnow (stan) Funkcja obecnie kończy wykonywanie skryptu bez uruchamiania odcinki końcowe nawet jeśli == stan 0.
  • Nowy moduł io.awk obejmuje funkcje is_ {plików, dir, exec, gniazda, FIFO, blockdev, chardev, dowiązania symbolicznego}, file_size i file_type. tokenre.awk ma nową funkcję splitre0 ().

Co nowego w wersji 1.3.2:

  • tablice wewnętrzne są teraz przeniesione automatycznie. To rozwiązuje użycie runawk (1) w połączeniu z xargs (1), na przykład kot files.txt |. Xargs runawk -e '...'

Co nowego w wersji 1.3.0:

  • poprawka dla wiadomości ostrzegawczej kompilatora Intel C.
  • poprawka dla shquote funkcji () z modułów / shquote.awk.
  • kod źródłowy projektu została zreorganizowana, umożliwiając łatwą instalację dowolnego podprojektów:. Przykłady, moduły, runawk, alt_getopt i doc (TODO, pliki README, itp),

Co nowego w wersji 1.1.0:

  • Opcja -F dodano
  • Nowe ord.awwas ftrans_in.awk i moduły glob.awk zostały uwzględnione.
  • Nowy alt_getopt program został włączony do analizowania krótkich i długich opcji w skryptach powłoki.
  • Nowy min3, MIN4, min5, min_key, MIN_VALUE i key_of_min_value (min.awk) i max3, max4, max5, max_key, MAX_VALUE i key_of_max_value funkcje (max.awk) były.
  • Nowe próbki dodano:. Przykłady / demo_minmax, przykłady / demo_tokenre3, przykłady / demo_ftrans, przykłady / demo_glob *
  • Nowa funkcja została dodana w multisub.awk.
  • Drobne poprawki zostały dokonane w procedurze instalacji.

Co nowego w wersji 0.16.0:

  • Wiele programów demonstracyjnych dla większości modułów runawk powstały i są w podkatalogu z przykładami / teraz. Nowy moduł MEGA;-) power_getopt.awk Zobacz przykłady dokumentacji i programów demo / demo_power_getopt. To sprawia, że ​​obsługa bardzo proste opcje. Nowe moduły: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk Drobne poprawki i ulepszenia w dirname.awk i basename.awk. Teraz są w pełni kompatybilne z dirname (1) i nazwy bazowej (1) RUNAWK ustawia następujące zmienne środowiskowe dla podprocesie awk dziecko: RUNAWK_MODC - liczba modułów (-f nazwa_pliku) przekazany do AWK RUNAWK_MODV_ - Pełna ścieżka do #N modułu gdzie n jest w zakresie [0..RUNAWK_MODC). RUNAWK ustawia zmienną środowiskową RUNAWK_ART_STDIN dla podprocesie awk dziecko do 1, jeśli dodatkowa / sztuczne `- 'został dodany do listy na argumenty awk. Makefile: BSkonfiguruj-ism zostały usunięte. Teraz Makefile jest w pełni kompatybilny z FreeBSD marki. Docelowa CLEANFILES jest używany zamiast reguł ręcznie robione Minor poprawki w celu "test_all"

Podobne oprogramowanie

gears-handlebars
gears-handlebars

20 Feb 15

lizpop
lizpop

14 Apr 15

LIOGO
LIOGO

3 Jun 15

ADP
ADP

17 Feb 15

Inne programy z deweloperem Aleksey Cheusov

mk-configure
mk-configure

20 Feb 15

DictEm
DictEm

20 Feb 15

paexec
paexec

20 Feb 15

Komentarze do runawk

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!