runawk

Screenshot der Software:
runawk
Softwarebeschreibung:
Version: 1.5.0
Upload-Datum: 19 Feb 15
Entwickler: Aleksey Cheusov
Lizenz: Frei
Popularität: 20

Rating: nan/5 (Total Votes: 0)

runawk ist ein kleines Wrapper für AWK-Interpreter, Modulsystem impements und hilft, die Standalone-AWK Programme zu schreiben.
MOTIVATION
Nach Jahren mit AWK für die Programmierung habe ich festgestellt, dass trotz der
seine Einfachheit und Einschränkungen AWK ist gut genug für Scripting eine breite
Reihe von verschiedenen Aufgaben. AWK ist nicht so mächtig wie ihre größeren
Kollegen wie Perl, Ruby, TCL und andere, aber es hat seinen eigenen
Vorteile wie Kompaktheit, Einfachheit und Verfügbarkeit auf fast allen
UNIX-ähnlichen Systemen. Ich persönlich auch ihre datengesteuerten Natur mögen und
Token Orientierung, sehr nützliche Technik für einfache Textverarbeitung
Versorgungsunternehmen.
Aber Doch! Leider awk Dolmetscher fehlen einige wichtige Funktionen und
manchmal funktionieren nicht so gut wie es whould sein.
Einige Probleme, die ich zu sehen (einige von ihnen, natürlich).
1) AWK keine Unterstützung für Module. Auch wenn ich kleine Programme zu erstellen, I
Oft wollen die Funktionen früher erstellt wurden und bereits verwendet
andere Skripte. Das heißt, es ist toll zu werten sei, Funktionen in orginise
so genannten Bibliotheken (Module).
2) Um Argumente zu übergeben #! / Usr / bin / awk -f Skript (nicht zu awk
Interpreter), ist es notwendig, eine Liste von prepand
Argumente mit - (minus zwei signes). Aus meiner Sicht, das sieht schlecht.
Beispiel:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; START {
& 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-Sitzung:
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: unbekannte Option --opt1 ignoriert
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: unbekannte Option --opt2 ignoriert
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; Argv [1] = - opt1
& Nbsp; & nbsp; & nbsp; Argv [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Meiner Meinung nach sollte awk_program Skript wie folgt genau wie Arbeit (
normale Programme zu tun)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; Argv [1] = - opt1
& Nbsp; & nbsp; & nbsp; Argv [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Es ist möglich, mit Hilfe runawk.
3) Wenn #! / Usr / bin / awk -f Skript übernimmt Argumente (Optionen) und will
um von der Standardeingabe zu lesen, ist es notwendig, hinzuzufügen
/ Dev / stdin (oder `- ') als letztes Argument explizit.
Beispiel:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; START {
& 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] = "" #, um nicht lesen Datei mit dem Namen "--flag"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; print "Flag =" Flagge "$ 0 =" 0 $
& Nbsp; & nbsp; & nbsp; }
Shell-Sitzung:
& Nbsp; & nbsp; & nbsp; % Echotest | awk_program - --flag
& Nbsp; & nbsp; & nbsp; % Echotest | awk_program - --flag / dev / stdin
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = Test
& Nbsp; & nbsp; & nbsp; %
Idealer awk_program sollte wie folgt funktionieren
& Nbsp; & nbsp; & nbsp; % Echotest | awk_program --flag
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = Test
& Nbsp; & nbsp; & nbsp; %
Alle diese probles durch runawk gelöst, und das ist, warum ich es schrieb.
Ich sind auch ein paar Module Verteilung sind runawk
nützlich für mich, und ich hoffe, dass sie auch hilfreich für Sie sein.
INSTALLATION
0) BSD make erforderlich. Ich nenne es einfach "machen", aber seinen richtigen Namen kann
& Nbsp; & nbsp; variieren. & nbsp; bmake und pmake möglich Namen.
& Nbsp; & nbsp; Wenn Sie die Standardgebäude Optionen ändern müssen,
& Nbsp; & nbsp; make wie folgt
& Nbsp; & nbsp; & nbsp; & nbsp; env [YOUR_ASSIGNMENTS] machen
& Nbsp; & nbsp; Siehe Beispiel weiter unten
1) Entpacken Sie Tarball Ihnen diese heruntergeladen haben
& Nbsp; & nbsp; gzip -dc runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) zu machen
4) (optional!) Make install-Verzeichnisse
5) make install
Es gibt eine Vielzahl von Variablen, die während des Make änderbaren
. Einbau & nbsp; Runawk eigenen Variablen (Alles, was sie sind am Anfang der
Makefile):
& Nbsp; PREFIX & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Wobei runawk installiert ist
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Verzeichnis, in dem Module werden installiert
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Pfad zu awk Interpreter
& Nbsp; STDIN_FILENAME - Pfad zur Gerätedatei stdin
Die BSD-Make-Variablen (am häufigsten verwendete,
für alle anderen - siehe Dokumentation machen und .mk Dateien)
& Nbsp; BINDIR - wo runawk ausführbar sich installiert ist
& Nbsp; MANDIR - wo Handbuchseiten werden installiert
& Nbsp; BINOWN - runawk ausführbare Eigentümer
& Nbsp; BINGRP - runawk ausführbare Gruppe
& Nbsp; MANOWN - man-Seite Eigentümer
& Nbsp; MANGRP - ein Mann Seitengruppe
Beispiel:
& 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 / schließen
& 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 = no
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; machen -s all install-Verzeichnisse zu installieren

Was ist neu in dieser Pressemitteilung:

  • Die Optionen -i, -I, und alle langen Optionen wurden vollständig entfernt.
  • Die Option -T wurde für Tabbed-Eingang aufgenommen.
  • Die Option -v in der man-Seite dokumentiert.
  • Fixes für gcc Kompilierung Warnungen.
  • Fixes für Zusammenstellung mit nicht leeren MAKEOBJDIR.
  • Tippfehlern in NEW, runcmd.awk und man-Seiten.

Was ist neu in Version 1.4.4:

  • Ein Fehler bei der Beseitigung von Unterverzeichnissen in einem temporären Verzeichnis war festgelegt.
  • Verbesserungen für runawk_modules.3.

Was ist neu in Version 1.4.3:

  • paexec (1) nicht verwendet System ( 3) mehr zum Entfernen des temporären Verzeichnis.
  • Die Funktion print_help () wurde aus dem power_getopt.awk Modul bewegt, um init_getopt.awk.

Was ist neu in Version 1.4.2:

  • Diese Version runawk_modules.3 wo alle Module dokumentiert, missbilligt lange Optionen, entfernt die Optionen -i und -I und umfasst Handbuchseiten in der Verteilung Tarball so pod2man ist nicht für den Bau benötigt.

Was ist neu in der Version 1.4.0:

  • In exitnow.awk die exitnow (Status) Funktion beendet nun die Ausführung des Skripts ohne fließendes END Abschnitte auch wenn Status == 0.
  • Das neue Modul io.awk die Funktionen is_ {file, dir, exec, Steckdose, Fifo, blockdev, chardev, Symlink} enthält, file_size und file_type. tokenre.awk hat die neue Funktion splitre0 ().

Was ist neu in Version 1.3.2:

  • Interne Arrays werden nun automatisch verlegt. Dies behebt Verwendung runawk (1) in Kombination mit xargs (1), beispielsweise Katze files.txt |. Xargs runawk -e '... "

Was ist neu in Version 1.3.0:

  • Eine Lösung für eine Intel C-Compiler Warnmeldung.
  • Ein Update für die Funktion shquote () von Modulen / shquote.awk.
  • Der Quellcode des Projekts wurde neu organisiert, so dass eine einfache Installation aller Teilprojekt:. Beispiele, Module, runawk, alt_getopt und doc (TODO, README usw. Dateien)

Was ist neu in Version 1.1.0:

  • Eine Option -F wurde hinzugefügt
  • New ord.awwas ftrans_in.awk und glob.awk Module enthalten waren.
  • Eine neue alt_getopt ausführbare Datei für das Parsen von Kurz- und Langoptionen in Shell-Skripten enthalten.
  • New min3, min4, MIN5, min_key, min_value und key_of_min_value (min.awk) und max3, max4, max5, max_key, max_value und key_of_max_value (max.awk) Funktionen wurden zur Verfügung gestellt.
  • New Proben wurden hinzugefügt:. Beispiele / demo_minmax Beispiele / demo_tokenre3 Beispiele / demo_ftrans Beispiele / demo_glob *
  • Ein neues Feature wurde in multisub.awk hinzugefügt.
  • Kleinere Verbesserungen wurden in der Installation vorgenommen.

Was ist neu in der Version 0.16.0:

  • Viele Demo-Programme für die meisten runawk Module erstellt wurden, und sie sind jetzt in examples / Unterverzeichnis. Neue MEGA-Modul;-) power_getopt.awk Lesen Sie die Dokumentation und Demoprogramm Beispiele / demo_power_getopt. Es macht Optionen Handhabung einfach. Neue Module: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk Kleinere Korrekturen und Verbesserungen in dirname.awk und basename.awk. Jetzt sind sie vollständig kompatibel mit dirname (1) und Basisnamen sind (1) RUNAWK setzt die folgenden Umgebungsvariablen für das Kind awk Unterprozess: RUNAWK_MODC - Eine Reihe von Modulen (-f Dateiname) geleitet, um AWK RUNAWK_MODV_ - Vollständiger Pfad zum Modul #n , wobei n in [0..RUNAWK_MODC) Bereich. RUNAWK setzt RUNAWK_ART_STDIN Umgebungsvariable für das Kind awk Teilprozess auf 1, wenn zusätzliche / Kunst `- 'wurde in die Liste, um Argumente awk hinzugefügt. Makefile: bmake-ism wurden entfernt. Jetzt Makefile ist kompatibel mit FreeBSD machen. CLEAN Ziel anstelle von handgemachten Regeln Kleiner Fehler in 'test_all' Ziel verwendet

Ähnliche Software

Excelsior JET
Excelsior JET

17 Feb 15

LavaPE
LavaPE

20 Feb 15

YML
YML

11 May 15

J
J

20 Feb 15

Andere Software von Entwickler Aleksey Cheusov

paexec
paexec

20 Feb 15

DictEm
DictEm

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Kommentare zu runawk

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!