runawk

Software screenshot:
runawk
Software informatie:
Versie: 1.5.0
Upload datum: 19 Feb 15
Ontwikkelaar: Aleksey Cheusov
Licentie: Gratis
Populariteit: 20

Rating: nan/5 (Total Votes: 0)

runawk is een klein wrapper voor AWK tolk die module systeem impements en helpt om de standalone AWK programma's te schrijven.
MOTIVATIE
Na jaren van gebruik AWK voor het programmeren Ik heb ontdekt dat ondanks
zijn eenvoud en beperkingen AWK is goed genoeg voor scripting een breed
waaier van verschillende taken. AWK is niet zo krachtig als hun grotere
tegenhangers zoals Perl, Ruby, TCL en anderen, maar het heeft zijn eigen
voordelen zoals compactheid, eenvoud en beschikbaarheid op bijna alle
UNIX-achtige systemen. Ik vind persoonlijk ook een data-driven natuur en
token oriëntatie, zeer nuttige techniek voor eenvoudige tekstverwerking
nutsbedrijven.
Maar Wel! Helaas awk tolken mist een aantal belangrijke functies en
werken soms niet zo goed als het zou zij zijn.
Sommige problemen zie ik (een aantal van hen, natuurlijk).
1) AWK ontbreekt ondersteuning voor modules. Zelfs als ik kleine programma's te maken, ik
Vaak willen de functies eerder hebt gemaakt gebruiken en nu al gebruikt in
andere scripts. Dat wil zeggen, het whould geweldig om functies orginise in
zogenaamde bibliotheken (modules).
2) Om de argumenten door te geven aan #! / Usr / bin / awk -f script (niet te awk
interpreter), moet een lijst prepand
argumenten met - (twee minus Signes). Naar mijn mening is dit ziet er slecht.
Voorbeeld:
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-sessie:
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: onbekend optie --opt1 genegeerd
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: onbekend optie --opt2 genegeerd
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - OPT1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Naar mijn mening awk_program moeten script werken als dit (net als
normale programma's doen)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - OPT1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Het is mogelijk met behulp van runawk.
3) Wanneer #! / Usr / bin / awk -f script argumenten verwerkt (opties) en wil
lezen van stdin, moet voegen
/ Dev / stdin (of '-') als een laatste argument expliciet.
Voorbeeld:
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] = "" # om niet lezen bestand met de naam "--flag"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; print "vlag =" vlag "$ 0 =" 0 $
& Nbsp; & nbsp; & nbsp; }
Shell-sessie:
& 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; %
Idealiter awk_program zou moeten werken als deze
& Nbsp; & nbsp; & nbsp; % Echo-test | awk_program --flag
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 =-test
& Nbsp; & nbsp; & nbsp; %
Al deze probles worden opgelost door runawk en dit is waarom ik het schreef.
Ik ook een paar modules om de distributie die runawk
handig voor mij en ik hoop dat zal ook nuttig zijn voor je.
INSTALLATIE
0) BSD make vereist. Ik noem het gewoon 'te maken', maar haar echte naam kan
& Nbsp; & nbsp; variëren. & nbsp; BLet en pmake zijn mogelijke namen.
& Nbsp; & nbsp; Als u nodig hebt om de standaard gebouw opties te wijzigen
& Nbsp; & nbsp; run te maken als deze
& Nbsp; & nbsp; & nbsp; & nbsp; env [YOUR_ASSIGNMENTS] maken
& Nbsp; & nbsp; Zie voorbeeld hieronder
1) Uncompress tarball die je hebt gedownload als dit
& Nbsp; & nbsp; gzip -dc runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) maken
4) (optioneel!) Make install-dirs
5) make install
Er zijn veel Makefile variabelen die bij kunnen wijzigen
. installatie & nbsp; Eigen variabelen Runawk's (Alle zijn ze aan het begin van
Makefile):
& Nbsp; PREFIX & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Wanneer runawk is geïnstalleerd
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Directory waar modules worden geïnstalleerd om
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Pad naar awk tolk
& Nbsp; STDIN_FILENAME - pad naar stdin devicebestand
Variabelen BSD make's (meest gebruikt,
voor alle anderen - zie documentatie en .mk bestanden)
& Nbsp; BINDIR - waar runawk uitvoerbaar zelf is geïnstalleerd om
& Nbsp; MANDIR - waar manual pagina's worden geïnstalleerd om
& Nbsp; BINOWN - runawk uitvoerbare eigenaar
& Nbsp; BINGRP - runawk uitvoerbare groep
& Nbsp; MANOWN - man pagina eigenaar
& Nbsp; MANGRP - man pagina groep
Voorbeeld:
& 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 = users
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = users
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = geen
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; maken -s alle installatie-dirs installeren

Wat is nieuw in deze release:

  • De opties -i, -I, en al lang opties werden volledig verwijderd.
  • De optie -T werd toegevoegd voor tabbed-ingang.
  • De optie -v wordt gedocumenteerd in de man pagina.
  • Oplossingen voor gcc compilatie waarschuwingen.
  • Oplossingen voor compilatie met niet-lege MAKEOBJDIR.
  • Typo fixes in Nieuw, runcmd.awk, en de man-pagina's.

Wat is nieuw in versie 1.4.4:

  • Een bug in het verwijderen van submappen in een tijdelijke map was vast.
  • Verbeteringen voor runawk_modules.3.

Wat is nieuw in versie 1.4.3:

  • paexec (1) maakt geen gebruik van het systeem ( 3) meer voor het verwijderen van de tijdelijke map.
  • De functie print_help () werd verplaatst van de power_getopt.awk module om init_getopt.awk.

Wat is nieuw in versie 1.4.2:

  • Deze versie voegt runawk_modules.3 waar alle modules zijn gedocumenteerd, laakt lange opties, verwijdert de -i en -I opties, en omvat man pagina's in de distributie tarball dus gebruiken: pod2man niet nodig is voor de bouw. ​​

Wat is nieuw in versie 1.4.0:

  • In exitnow.awk, de exitnow (status) functie eindigt nu de uitvoering van het script zonder stromend END secties, zelfs als de status == 0.
  • De nieuwe module io.awk de functies is_ {bestand, dir, exec, socket, fifo, blockdev, chardev, symlink} omvat, file_size en file_type. tokenre.awk heeft de nieuwe functie splitre0 ().

Wat is nieuw in versie 1.3.2:

  • Interne arrays worden nu automatisch verplaatst. Dit lost het gebruik van runawk (1) in combinatie met xargs (1), bijvoorbeeld, kat files.txt |. Xargs runawk -e '...'

Wat is nieuw in versie 1.3.0:

  • Een fix voor een Intel C-compiler waarschuwing.
  • Een fix voor de functie shquote () uit modules / shquote.awk.
  • De broncode van het project is gereorganiseerd, waardoor een eenvoudige installatie van een deelproject:. Voorbeelden, modules, runawk, alt_getopt, en doc (TODO, README, enz. Bestanden)

Wat is nieuw in versie 1.1.0:

  • Een optie -F werd toegevoegd
  • Nieuwe ord.awwas ftrans_in.awk en glob.awk modules werden opgenomen.
  • Een nieuwe alt_getopt uitvoerbare werd opgenomen voor het ontleden van korte en lange opties in shell scripts.
  • Nieuwe Min3, min4, min5, min_key, MIN_VALUE en key_of_min_value (min.awk), en naarMAX3, max4, MAX5, max_key, MAX_VALUE en key_of_max_value (max.awk) functies werden verstrekt.
  • Nieuwe monsters werden toegevoegd:. Voorbeelden / demo_minmax, voorbeelden / demo_tokenre3, voorbeelden / demo_ftrans, voorbeelden / demo_glob *
  • Een nieuwe functie is toegevoegd aan het multisub.awk.
  • Kleine verbeteringen werden gemaakt in de installatieprocedure.

Wat is nieuw in versie 0.16.0:

  • Veel demo's voor de meeste runawk modules zijn gemaakt en ze zijn in de voorbeelden / subdirectory nu. Nieuwe MEGA-module;-) power_getopt.awk Bekijk de documentatie en demo programma voorbeelden / demo_power_getopt. Het maakt opties hanteren echt makkelijk. Nieuwe modules: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk Kleine aanpassingen en verbeteringen in dirname.awk en basename.awk. Nu zijn ze volledig compatibel met dirname (1) en basename (1) RUNAWK stelt de volgende omgevingsvariabelen voor het kind awk deelproces: RUNAWK_MODC - Een aantal modules (-f bestandsnaam) doorgegeven aan AWK RUNAWK_MODV_ - Volledig pad naar de module #n , waarbij n in [0..RUNAWK_MODC) bereik. RUNAWK stelt RUNAWK_ART_STDIN omgevingsvariabele voor het kind awk deelproces op 1 als extra / kunstmatige `- 'werd toegevoegd aan de lijst met argumenten awk's. Makefile: BLet-isme werden verwijderd. Nu Makefile is volledig compatibel met FreeBSD te maken. CLEANFILES doel wordt gebruikt in plaats van met de hand gemaakte regels Minor fix in 'test_all' target

Vergelijkbare software

ccache
ccache

20 Feb 15

o42a
o42a

19 Feb 15

Nimrod
Nimrod

20 Feb 15

Andere software van ontwikkelaar Aleksey Cheusov

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

LMDBG
LMDBG

20 Feb 15

Reacties op runawk

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!