runawk

Software skärmdump:
runawk
Mjukvaruinformation:
Version: 1.5.0
Ladda upp dagen: 19 Feb 15
Utvecklare: Aleksey Cheusov
Licens: Gratis
Popularitet: 20

Rating: nan/5 (Total Votes: 0)

runawk är en liten wrapper för AWK tolk som impements modulsystem och hjälper till att skriva de fristående awk programmen.
MOTIVATION
Efter år av att använda AWK för programmering Jag har upptäckt att trots
dess enkelhet och begränsningar AWK är bra nog för skript ett brett
rad olika uppgifter. AWK är inte lika kraftfullt som deras större
motsvarigheter som Perl, Ruby, TCL och andra men det har sin egen
fördelar som kompakthet, enkelhet och tillgänglighet på nästan alla
UNIX-liknande system. Jag gillar personligen också sin datadrivna karaktär och
token orientering, mycket användbar teknik för enkel textbearbetning
verktyg.
Men! Tyvärr awk tolkar saknar några viktiga funktioner och
Ibland fungerar inte så bra som det whould vara.
Vissa problem ser jag (en del av dem, förstås).
1) AWK saknar stöd för moduler. Även om jag skapar små program, jag
ofta vill använda funktionerna som skapats tidigare och används redan i
andra skript. Det vill säga, whould det bra att orginise funktioner i
så kallade bibliotek (moduler).
2) För att skicka argument till #! / Usr / bin / awk -f script (inte awk
tolk), är det nödvändigt att prepand en lista över
argument med - (två minus Signes). Enligt min mening, det här ser dåligt.
Exempel:
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 session:
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: okänt alternativ --opt1 ignoreras
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: okänt alternativ --opt2 ignoreras
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; Argv [1] = - OPT1
& Nbsp; & nbsp; & nbsp; Argv [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Enligt min mening awk_program manus bör arbeta så här (precis som
normala program gör)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; Argv [1] = - OPT1
& Nbsp; & nbsp; & nbsp; Argv [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Det är möjligt att använda runawk.
3) När #! / Usr / bin / awk -f script hanterar argument (alternativ) och vill
att läsa från standard, är det nödvändigt att tillsätta
/ Dev / stdin (eller `- ') som en sista argument explicit.
Exempel:
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; flag = 1
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Argv [1] = "" # för att inte läsa fil med namnet "--flag"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; print "flagga =" flagga "$ 0 =" $ 0
& Nbsp; & nbsp; & nbsp; }
Shell session:
& Nbsp; & nbsp; & nbsp; % Eko testet | awk_program - --flag
& Nbsp; & nbsp; & nbsp; % Eko test | awk_program - --flag / dev / stdin
& Nbsp; & nbsp; & nbsp; flagga = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Helst awk_program bör arbeta så här
& Nbsp; & nbsp; & nbsp; % Eko Provning | awk_program --flag
& Nbsp; & nbsp; & nbsp; flagga = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Alla dessa probles löses genom runawk och det är därför jag skrev det.
Jag inkluderar även några moduler att runawk distributionen som är
användbart för mig och jag hoppas kommer att vara till hjälp för dig också.
INSTALLATION
0) BSD make krävs. Jag kallar det bara "göra", men dess riktiga namn kan
& Nbsp; & nbsp; varierar. & nbsp; BGör och pmake är möjliga namn.
& Nbsp; & nbsp; Om du behöver ändra standardbyggalternativ,
& Nbsp; & nbsp; kör make såhär
& Nbsp; & nbsp; & nbsp; & nbsp; ENV [YOUR_ASSIGNMENTS] gör
& Nbsp; & nbsp; Se exempel sektionen nedan
1) Packa tarball du har hämtat ut så här
& Nbsp; & nbsp; gzip -dc runawk-X-Y-Z.tar.gz | tjära -xf-
2) cd runawk-X-Y-Z
3) göra
4) (tillval!) Gör installera-dirs
5) make install
Det finns en hel del Makefile variabler som kan ändras under
. installation & nbsp; Runawk egna variabler (Alla de är på ändpunkterna blir
Makefile):
& Nbsp; PREFIX & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Där runawk installeras till
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Katalogen där modulerna installeras till
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Vägen till awk tolk
& Nbsp; STDIN_FILENAME - sökvägen till stdin enhetsfilen
BSD make variabler (vanligaste,
för alla andra - se make dokumentation och .mk filer)
& Nbsp; BINDIR - där runawk körbara sig installeras till
& Nbsp; Mandir - där manualsidor är installerade på
& Nbsp; BINOWN - runawk körbara ägare
& Nbsp; BINGRP - runawk körbar grupp
& Nbsp; MANOWN - manualsida ägare
& Nbsp; MANGRP - mannen sidgrupp
Exempel:
& Nbsp; & nbsp; env CC = gcc
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; PREFIX = / home / cheusov / lokal
& 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 = användare
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = användare
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = nej
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; gör -s alla install-dirs installera

Vad är nytt i den här versionen:

  • Alternativen -i, -I, och alla långa flaggor var helt bort.
  • Alternativet -T lades för flikar ingång.
  • Alternativet -v dokumenteras i man-sidan.
  • Fixar för gcc sammanställning varningar.
  • Fixar för sammanställning med icke-tom MAKEOBJDIR.
  • Typo fixar i NY, runcmd.awk och manualsidor.

Vad är nytt i version 1.4.4:

  • En bugg i att ta bort underkataloger i en temporär katalog var fast.
  • Förbättringar för runawk_modules.3.

Vad är nytt i version 1.4.3:

  • paexec (1) använder inte systemet ( 3) längre för att ta bort den temporära katalogen.
  • Funktionen print_help () flyttades från power_getopt.awk modulen att init_getopt.awk.

Vad är nytt i version 1.4.2:

  • Denna version lägger runawk_modules.3 där alla moduler är dokumenterat, deprecates långa flaggor, tar bort de -i och -I alternativ, och inkluderar man-sidorna i distributions tarbollen så behövs inte pod2man för byggnaden.

Vad är nytt i version 1.4.0:

  • I exitnow.awk, den exitnow (status) Funktionen avslutar nu skriptet körs utan att köra ändsektionema även om status == 0.
  • Den nya modulen io.awk innehåller de funktioner Is_ {file, dir, exec, socket, fifo, blockdev, chardev, symbolisk länk}, file_size och file_type. tokenre.awk har den nya funktionen splitre0 ().

Vad är nytt i version 1.3.2:

  • är Interna arrayer nu flyttat automatiskt. Detta fixar använda runawk (1) i kombination med xargs (1), till exempel, katt files.txt |. Xargs runawk -e '...'

Vad är nytt i version 1.3.0:

  • En fix för en Intel C-kompilator varningsmeddelande.
  • En fix för funktionen shquote () från moduler / shquote.awk.
  • Källkoden för projektet har omorganiserats, vilket möjliggör en enkel installation av alla delprojekt:. Exempel, moduler, runawk, alt_getopt och doc (TODO, README, etc. filer)

Vad är nytt i version 1.1.0:

  • En -F alternativet lades
  • Nya ord.awwas ftrans_in.awk och glob.awk moduler ingick.
  • En ny alt_getopt körbara ingick för att analysera korta och långa optioner i skalskript.
  • Ny min3, min4, min5, min_key, MIN_VALUE och key_of_min_value (min.awk), och max3, max4, max5, max_key, max_value och key_of_max_value (max.awk) funktioner lämnades.
  • Nya prover läggas:. Exempel / demo_minmax, exempel / demo_tokenre3, exempel / demo_ftrans, exempel / demo_glob *
  • En ny funktion lades i multisub.awk.
  • Mindre förbättringar gjordes i installationen.

Vad är nytt i version 0.16.0:

  • Massor av demoprogram för de flesta runawk moduler skapades och de är i exemplen / katalogen nu. Ny MEGA modul;-) power_getopt.awk Se dokumentation och demoprogramexempel / demo_power_getopt. Det gör alternativ hanterar riktigt enkelt. Nya moduler: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk Mindre korrigeringar och förbättringar i dirname.awk och basename.awk. Nu är de helt kompatibla med dirname (1) och basename (1) RUNAWK ställer följande miljövariabler för barnet awk delprocess: RUNAWK_MODC - Ett antal moduler (-f filnamn) skickas till AWK RUNAWK_MODV_ - Fullständig sökväg till modulen #n , där n är i [0..RUNAWK_MODC) området. RUNAWK sätter RUNAWK_ART_STDIN miljövariabeln för barnet awk delprocess till 1 om ytterligare / konstgjord `- 'lades till listan för att awk argument. Makefile: BGör-ism togs bort. Nu Makefile är helt kompatibel med FreeBSD make. CLEANFILES målet används i stället för handgjorda regler Minor fix i "test_all" mål

Liknande mjukvara

Shed Skin
Shed Skin

15 Apr 15

MAWK
MAWK

17 Feb 15

Annan programvara för utvecklare Aleksey Cheusov

paexec
paexec

20 Feb 15

DictEm
DictEm

20 Feb 15

LMDBG
LMDBG

20 Feb 15

Kommentarer till runawk

Kommentarer hittades inte
Kommentar
Slå på bilder!