runawk

Software screenshot:
runawk
Software detaljer:
Version: 1.5.0
Upload dato: 19 Feb 15
Udvikler: Aleksey Cheusov
Licens: Gratis
Popularitet: 20

Rating: nan/5 (Total Votes: 0)

runawk er en lille wrapper for AWK tolk, der impements modulsystem og hjælper med til at skrive de enkeltstående AWK-programmer.
MOTIVATION
Efter flere år med at bruge AWK til programmering jeg har fundet, at på trods af
sin enkelhed og begrænsninger AWK er godt nok til scripting en bred
vifte af forskellige opgaver. AWK er ikke så poweful som deres større
modparter som Perl, Ruby, THC og andre, men det har deres egen
fordele som kompakthed, enkelhed og tilgængelighed på næsten alle
UNIX-lignende systemer. Jeg personligt også gerne sin data-drevet natur og
token orientering, meget nyttig teknik til simpel tekstbehandling
forsyningsselskaber.
Men! Desværre awk tolke mangler nogle vigtige funktioner og
undertiden virker ikke så godt som det whould være.
Nogle problemer Jeg ser (nogle af dem, selvfølgelig).
1) AWK mangler støtte til moduler. Selv hvis jeg skabe små programmer, jeg
ofte vil bruge de funktioner, der er oprettet tidligere og allerede anvendes i
andre scripts. Det vil sige, det whould dejligt at orginise funktioner i
såkaldte biblioteker (moduler).
2) For at bestå argumenter til #! / Usr / bin / awk -F script (ikke at awk
tolk), er det nødvendigt at prepand en liste over
argumenter med - (to minus Signes). Efter min mening, det ser dårligt.
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-session:
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: ukendt valgmulighed --opt1 ignoreret
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: ukendt valgmulighed --opt2 ignoreret
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; Argv [1] = - opt1
& Nbsp; & nbsp; & nbsp; Argv [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Efter min mening awk_program bør script arbejde på denne måde (ligesom
normale programmer 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 er muligt at bruge runawk.
3) Når #! / Usr / bin / awk -F script håndterer argumenter (optioner) og ønsker
at læse fra stdin, er det nødvendigt at tilføje
/ Dev / stdin (eller '-') som sidste argument eksplicit.
Eksempel:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -F
& Nbsp; & nbsp; & nbsp; BEGIN {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; hvis (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] = "" # til ikke læse fil med navnet "--flag"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; print "flag =" flag "$ 0 =" $ 0
& Nbsp; & nbsp; & nbsp; }
Shell-session:
& 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; %
Ideelt awk_program bør arbejde på denne måde
& Nbsp; & nbsp; & nbsp; % Echo test | awk_program --flag
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Alle disse probles løses ved runawk, og det er derfor, jeg skrev det.
Jeg har også et par moduler til runawk fordeling, som er
nyttigt for mig, og jeg håber, vil være nyttigt for dig også.
INSTALLATION
0) BSD make er påkrævet. Jeg kalder det bare "gøre", men dens rigtige navn kan
& Nbsp; & nbsp; varierer. & nbsp; BForetag og pmake er mulige navne.
& Nbsp; & nbsp; Hvis du har brug for at ændre standard byggemuligheder,
& Nbsp; & nbsp; køre gøre sådan her
& Nbsp; & nbsp; & nbsp; & nbsp; ENV [YOUR_ASSIGNMENTS] gøre
& Nbsp; & nbsp; Se eksempel nedenfor
1) Dekomprimer tar-arkiv, du har downloadet som denne
& Nbsp; & nbsp; gzip -dc runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) gøre
4) (valgfri!) Make install-dirs
5) make install
Der er en masse af Makefile variabler, der kan ændres under
. installation & nbsp; Runawk egne variabler (Alt, hvad de er i begyndelsen af
Makefile):
& Nbsp; PRÆFIKS & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Hvor runawk er installeret
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Mappe, hvor moduler er installeret på
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Sti til awk tolk
& Nbsp; STDIN_FILENAME - sti til stdin enhedsfil
BSD make s variabler (mest almindeligt anvendte,
for alle andre - se make dokumentation og .mk filer)
& Nbsp; BINDIR - hvor runawk eksekverbare selv er installeret på
& Nbsp; Mandir - hvor manualsider er installeret på
& Nbsp; BINOWN - runawk eksekverbare ejer
& Nbsp; BINGRP - runawk eksekverbare gruppe
& Nbsp; MANOWN - mand side ejer
& Nbsp; MANGRP - mand sidegruppe
Eksempel:
& 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 = brugere
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = brugere
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = nej
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; gøre -s alle install-dirs installere

Hvad er nyt i denne udgivelse:

  • Indstillingerne -i, -I, og alle lange indstillinger blev helt fjernet.
  • Muligheden -T blev tilføjet til tabbed input.
  • Muligheden -v er dokumenteret i man-siden.
  • Rettelser til gcc kompilering advarsler.
  • Rettelser til udarbejdelse med ikke-tom MAKEOBJDIR.
  • Typo rettelser i nye, runcmd.awk og man-sider.

Hvad er nyt i version 1.4.4:

  • En fejl at fjerne undermapper i en midlertidig mappe var fast.
  • Forbedringer til runawk_modules.3.

Hvad er nyt i version 1.4.3:

  • paexec (1) ikke bruger systemet ( 3) længere for at fjerne den midlertidige mappe.
  • Funktionen print_help () blev flyttet fra power_getopt.awk modulet til init_getopt.awk.

Hvad er nyt i version 1.4.2:

  • Denne version tilføjer runawk_modules.3 hvor alle moduler er dokumenteret, misbilliger lange indstillinger, fjerner -I og -I indstillinger, og inkluderer man-sider i fordelingen tarball så pod2man der ikke er behov for bygningen.

Hvad er nyt i version 1.4.0:

  • I exitnow.awk, den exitnow (status) Funktionen afsluttes nu udførelsen af ​​scriptet uden at køre endestykker selvom status == 0.
  • Det nye modul io.awk omfatter de funktioner is_ {fil, dir, exec, socket, FIFO, blockdev, chardev, symlink}, FILE_SIZE og FILE_TYPE. tokenre.awk har den nye funktion splitre0 ().

Hvad er nyt i version 1.3.2:

  • Interne arrays nu flyttet automatisk. Dette løser brug af runawk (1) i kombination med xargs (1), fx kat files.txt |. Xargs runawk -e '...'

Hvad er nyt i version 1.3.0:

  • En rettelse til en Intel C compiler advarsel.
  • En rettelse til funktionen shquote () fra moduler / shquote.awk.
  • Kildekoden af ​​projektet er blevet omorganiseret, således at en let installation af delprojekt:. Eksempler, moduler, runawk, alt_getopt, og doc (TODO, README, etc. filer)

Hvad er nyt i version 1.1.0:

  • En -F option blev tilføjet
  • Nye ord.awwas ftrans_in.awk, og glob.awk moduler blev inkluderet.
  • En ny alt_getopt eksekverbare var inkluderet for parsing korte og lange indstillinger i shell scripts.
  • 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) funktioner blev leveret.
  • Nye prøver blev tilsat:. Eksempler / demo_minmax, eksempler / demo_tokenre3, eksempler / demo_ftrans, eksempler / demo_glob *
  • En ny funktion blev tilføjet i multisub.awk.
  • Mindre forbedringer blev foretaget i installationsproceduren.

Hvad er nyt i version 0.16.0:

  • Masser af demo-programmer for de fleste runawk moduler blev skabt og de er i eksemplerne / underindeks nu. Ny MEGA modul;-) power_getopt.awk Se den dokumentation og demo program eksempler / demo_power_getopt. Det gør muligheder håndterer virkelig nemt. Nye moduler: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk mindre rettelser og forbedringer i dirname.awk og basename.awk. Nu er de er fuldt kompatible med dirname (1) og basename (1) RUNAWK fastsættes følgende miljøvariabler for barnet awk delproces: RUNAWK_MODC - En række moduler (-f filnavn) videre til AWK RUNAWK_MODV_ - Fuld sti til modulet #N , hvor n er i [0..RUNAWK_MODC) område. RUNAWK sætter RUNAWK_ART_STDIN miljøvariablen for barnet awk delproces til 1, hvis yderligere / kunstig '-' blev føjet til listen awk argumenter. Makefile: BLav-isme blev fjernet. Nu Makefile er fuldt kompatibel med FreeBSD make. CLEANFILES mål i stedet for håndlavede regler Minor fix i 'test_all' mål

Lignende software

refactor
refactor

2 Jun 15

ooc
ooc

3 Jun 15

o42a
o42a

19 Feb 15

Andre software developer Aleksey Cheusov

DictEm
DictEm

20 Feb 15

mk-configure
mk-configure

20 Feb 15

paexec
paexec

20 Feb 15

Kommentarer til runawk

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!