runawk

Skjermbilde programvare:
runawk
Prog.varedetaljer:
Versjon: 1.5.0
Last opp dato: 19 Feb 15
Utvikler: Aleksey Cheusov
Lisens: Gratis
Popularitet: 20

Rating: nan/5 (Total Votes: 0)

runawk er en liten wrapper for AWK tolk som impements modulsystem og bidrar til å skrive de frittstående AWK programmer.
MOTIVASJON
Etter år med å bruke AWK for programmering Jeg har funnet ut at til tross for
sin enkelhet og begrensninger AWK er god nok for skripting et bredt
rekke forskjellige oppgaver. AWK er ikke så poweful som deres større
kolleger som Perl, Ruby, TCL og andre, men det har sin egen
fordeler som kompakthet, enkelhet og tilgjengelighet på nesten alt
UNIX-lignende systemer. Jeg liker personlig også sin data-drevet natur og
token orientering, veldig nyttig teknikk for enkel tekstbehandling
verktøy.
Men! Dessverre AWK tolker mangler noen viktige funksjoner og
noen ganger fungerer ikke så godt som det whould være.
Noen problemer jeg ser (noen av dem, selvfølgelig).
1) AWK mangler støtte for moduler. Selv om jeg lage små programmer, jeg
ofte vil bruke funksjoner som er opprettet tidligere, og allerede brukt i
andre scripts. Det vil si, det Whould flott å orginise funksjoner inn
såkalte biblioteker (moduler).
2) For å passere argumenter til #! / Usr / bin / awk -F script (ikke til awk
tolk), er det nødvendig å prepand en liste over
argumenter med - (to minus signes). Etter mitt syn, dette ser dårlig.
Eksempel:
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 sesjon:
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: ukjent alternativ --opt1 ignorert
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: ukjent alternativ --opt2 ignorert
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - opt1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Etter min mening awk_program script skal fungere som dette (akkurat som
vanlige programmer gjør)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - opt1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Det er mulig å bruke runawk.
3) Når #! / Usr / bin / awk -F script håndterer argumenter (opsjoner) og ønsker
for å lese fra standard inn, er det nødvendig å tilsette
/ Dev / stdin (eller `- ') som en siste argument eksplisitt.
Eksempel:
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; flagg = 1
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ARGV [1] = "" # å ikke lese fil som heter "--flag"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; print "flagg =" flagg "$ 0 =" $ 0
& Nbsp; & nbsp; & nbsp; }
Shell sesjon:
& Nbsp; & nbsp; & nbsp; % Echo test | awk_program - --flag
& Nbsp; & nbsp; & nbsp; % Echo test | awk_program - --flag / dev / stdin
& Nbsp; & nbsp; & nbsp; flagg = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Ideelt awk_program skal fungere som dette
& Nbsp; & nbsp; & nbsp; % Echo test | awk_program --flag
& Nbsp; & nbsp; & nbsp; flagg = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Alle disse probles løses ved runawk og dette er grunnen til at jeg skrev det.
Jeg har også et par moduler til runawk fordeling som er
nyttig for meg og jeg håper vil være nyttig for deg også.
installation
0) BSD make er nødvendig. Jeg kaller det bare "gjøre", men sitt virkelige navn kan
& Nbsp; & nbsp; variere. & nbsp; BSørg og pmake er mulige navn.
& Nbsp; & nbsp; Hvis du trenger å endre standard byggemuligheter,
& Nbsp; & nbsp; kjøre gjøre som dette
& Nbsp; & nbsp; & nbsp; & nbsp; env [YOUR_ASSIGNMENTS] gjøre
& Nbsp; & nbsp; Se eksempel nedenfor
1) Dekomprimer tarball du har lastet ned som dette
& Nbsp; & nbsp; gzip DC-runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) gjøre
4) (tilleggsutstyr!) Gjør install-dirs
5) make install
Det er mange av Makefile variabler som kan endres i løpet av
. installasjon & nbsp; Runawk egne variabler (Alle er de i begynnelsen av
Makefile):
& Nbsp; PREFIX & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Hvor runawk er installert på
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Katalog hvor modulene er installert for å
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Veien til awk tolk
& Nbsp; STDIN_FILENAME - veien til stdin enhetsfil
BSD make variabler (mest brukte,
for alle andre - se make dokumentasjon og .mk filer)
& Nbsp; BINDIR - hvor runawk programet er installert på
& Nbsp; Mandir - hvor manuelle sidene er installert for å
& Nbsp; BINOWN - runawk kjørbar eier
& Nbsp; BINGRP - runawk kjørbar gruppe
& Nbsp; MANOWN - mann sideeieren
& Nbsp; MANGRP - mann sidegruppe
Eksempel:
& Nbsp; & nbsp; env CC = gcc
& 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 = brukere
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = brukere
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = no
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; gjøre -s alle install-dirs installere

Hva er nytt i denne utgaven:

  • Alternativene -i, -I, og alle lange flagg ble helt fjernet.
  • Alternativet -T ble lagt for tabbed innspill.
  • Alternativet -V er dokumentert i mannen siden.
  • Løser for gcc kompilering advarsler.
  • Løser for samling med ikke-tom MAKEOBJDIR.
  • Typo rettinger i NY, runcmd.awk, og man-sidene.

Hva er nytt i versjon 1.4.4:

  • En bug i å fjerne underkataloger i en midlertidig katalog var fikset.
  • Forbedringer for runawk_modules.3.

Hva er nytt i versjon 1.4.3:

  • paexec (1) ikke bruker systemet ( 3) lenger for å fjerne den midlertidige katalogen.
  • Funksjonen print_help () ble flyttet fra power_getopt.awk modulen til init_getopt.awk.

Hva er nytt i versjon 1.4.2:

  • Denne versjonen legger runawk_modules.3 hvor alle modulene er dokumentert, misnøye lange flagg, fjerner -i og -I alternativer, og inkluderer man-sidene i fordelingen tarball så pod2man ikke er nødvendig for bygningen.

Hva er nytt i versjon 1.4.0:

  • I exitnow.awk, den exitnow (status) Funksjonen er ferdig nå gjennomføringen av manuset uten å kjøre END seksjoner selv om status == 0.
  • Den nye modulen io.awk omfatter funksjonene skisse sett {fil, dir, exec, socket, FIFO, blockdev, chardev, symlink} FILE_SIZE, og file_type. tokenre.awk har den nye funksjonen splitre0 ().

Hva er nytt i versjon 1.3.2:

  • Interne arrays er nå flyttet automatisk. Dette løser bruk av runawk (1) i kombinasjon med xargs (1), for eksempel, katt FILES.TXT |. Xargs runawk -e "..."

Hva er nytt i versjon 1.3.0:

  • En fiks for en Intel C-kompilator advarsel.
  • En fiks for funksjonen shquote () fra moduler / shquote.awk.
  • Kildekoden for prosjektet har blitt omorganisert, og dermed gir en enkel installasjon av delprosjektet. Eksempler, moduler, runawk, alt_getopt, og doc (TODO, README, osv filer)

Hva er nytt i versjon 1.1.0:

  • A -F alternativet ble lagt
  • Nye ord.awwas ftrans_in.awk, og glob.awk moduler ble inkludert.
  • En ny alt_getopt kjørbar ble inkludert for parsing korte og lange alternativer i skallskript.
  • Ny min3, min4, min5, min_key, MIN_VALUE, og key_of_min_value (min.awk), og max3, max4, MAX5, max_key, max_value, og key_of_max_value (max.awk) funksjoner ble gitt.
  • Nye prøver ble lagt til:. Eksempler / demo_minmax, eksempler / demo_tokenre3, eksempler / demo_ftrans, eksempler / demo_glob *
  • En ny funksjon ble lagt i multisub.awk.
  • Mindre forbedringer ble gjort i installasjonsprosedyren.

Hva er nytt i versjon 0.16.0:

  • Masse demoprogrammer for de fleste runawk moduler ble opprettet og de er i eksempler / katalogen nå. Ny MEGA modul;-) power_getopt.awk se dokumentasjonen og demo program eksempler / demo_power_getopt. Det gjør alternativer håndtering virkelig enkelt. Nye moduler: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk mindre feilrettinger og forbedringer i dirname.awk og basename.awk. Nå er de fullt ut kompatibel med dirname (1) og basename (1) RUNAWK stiller følgende miljøvariabler for barnet awk subprosessen: RUNAWK_MODC - En rekke moduler (-f filnavn) gått til AWK RUNAWK_MODV_ - Full sti til modulen #n , der n er i [0..RUNAWK_MODC) rekkevidde. RUNAWK setter RUNAWK_ART_STDIN miljøvariabelen for barnet awk delprosess til en hvis ytterligere / kunstig `- 'ble lagt til listen til awk argumenter. Makefile: BSørg-ism ble fjernet. Nå Makefile er fullt kompatibel med FreeBSD make. CLEANFILES målet er brukt i stedet for håndlagde regler Minor fix i 'test_all' target

Lignende programvare

Ruby
Ruby

17 Aug 18

Chapel
Chapel

11 May 15

Pyastra
Pyastra

3 Jun 15

Annen programvare fra utvikleren Aleksey Cheusov

paexec
paexec

20 Feb 15

DictEm
DictEm

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Kommentarer til runawk

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!