runawk

Logiciel capture d'écran:
runawk
Détails logiciels:
Version: 1.5.0
Date de transfert: 19 Feb 15
Développeur: Aleksey Cheusov
Licence: Gratuit
Popularité: 20

Rating: nan/5 (Total Votes: 0)

runawk est un petit wrapper pour AWK interpréteur qui impements système de module et aide à écrire les programmes AWK autonomes.
MOTIVATION
Après des années de l'aide pour la programmation AWK, je ai trouvé que, malgré des
sa simplicité et limitations AWK est assez bon pour les scripts un large
éventail de tâches différentes. AWK ne est pas aussi puissant que leur plus grand
homologues tels que Perl, Ruby, TCL et d'autres, mais il a son propre
avantages comme la compacité, simplicité et disponibilité sur presque tous
Systèmes de type UNIX. Personnellement, je aime aussi sa nature axée sur les données et
orientation symbolique, technique très utile pour le traitement de texte simple
les services publics.
Mais! Awk Malheureusement interprètes manque quelques fonctionnalités importantes et
travailler parfois pas aussi bon qu'il devrait représenter.
Certains problèmes que je vois (certains d'entre eux, bien sûr).
1) AWK manque de soutien pour les modules. Même si je crée de petits programmes, je
veulent souvent utiliser les fonctions créées plus tôt et déjà utilisée dans
d'autres scripts. Ce est, il whould grand pour orginise fonctions en
dite bibliothèques (modules).
2) Afin de passer des arguments à #! / Usr / bin / awk -f scénario (pas awk
interprète), il est nécessaire d'une liste de prepand
arguments avec - (deux signes moins). À mon avis, cela ressemble mal.
Exemple:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; COMMENCER {
& 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: option inconnue --opt1 ignoré
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: option inconnue --opt2 ignoré
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; Argv [1] = - opt1
& Nbsp; & nbsp; & nbsp; Argv [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
À mon avis awk_program script doit travailler comme ça (comme
programmes normaux faire)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; Argv [1] = - opt1
& Nbsp; & nbsp; & nbsp; Argv [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Il est possible en utilisant runawk.
3) Lorsque #! / Usr / bin / awk -f script gère arguments (options) et veut
à lire à partir de l'entrée standard, il est nécessaire d'ajouter
/ Dev / stdin (ou `- ') comme un dernier argument explicitement.
Exemple:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; COMMENCER {
& 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] = "" # de ne pas lire fichier nommé "--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 essai | awk_program - --flag
& Nbsp; & nbsp; & nbsp; % Echo essai | awk_program - --flag / dev / stdin
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Idéalement awk_program devrait travailler comme ça
& Nbsp; & nbsp; & nbsp; % Test d'écho | awk_program --flag
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Tous ces probles sont résolus par runawk et ce est pourquoi je l'ai écrit.
Je inclus aussi quelques modules de la distribution qui sont runawk
utile pour moi et je l'espère, sera utile pour vous aussi.
POSE
0) BSD make est nécessaire. Je le nommer simplement «faire» mais son vrai nom mai
& Nbsp; & nbsp; varier. & nbsp; bmake et pmake sont des noms possibles.
& Nbsp; & nbsp; Si vous avez besoin de changer les options de construction par défaut,
& Nbsp; & nbsp; exécutez make comme ceci
& Nbsp; & nbsp; & nbsp; & nbsp; env [YOUR_ASSIGNMENTS] faire
& Nbsp; & nbsp; Voir la section exemple ci-dessous
1) Décompressez archive que vous avez téléchargé comme ceci
& Nbsp; & nbsp; gzip -dc runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) faire
4) (en option!) Make install-dirs
5) make install
Il ya beaucoup de variables Makefile qui peut être modifié au cours
. l'installation & nbsp; Propres variables de Runawk (Tout ce qu'ils sont au début de
Makefile):
& Nbsp; PREFIX & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Où est installé à runawk
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Répertoire où les modules sont installés à
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Chemin vers awk interprète
& Nbsp; STDIN_FILENAME - chemin vers le fichier de périphérique de stdin
Les variables de BSD maquillage (les plus couramment utilisés,
pour tous les autres - voir la documentation de marque et fichiers .MK)
& Nbsp; BINDIR - où runawk exécutable lui-même est installé à
& Nbsp; MANDIR - où les pages de manuel sont installés
& Nbsp; BINOWN - runawk propriétaire exécutable
& Nbsp; BINGRP - runawk groupe exécutable
& Nbsp; MANOWN - propriétaire de la page de l'homme
& Nbsp; MANGRP - homme groupe de pages
Exemple:
& 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 = utilisateurs
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = utilisateurs
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = no
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; -s faire installer tous-dirs installer

Ce qui est nouveau dans cette version:

  • Les options -i, -I, et toutes les options longues ont été complètement enlevés.
  • L'option -T a été ajouté pour l'entrée à onglets.
  • L'option -v est documenté dans la page de manuel.
  • Correction pour les avertissements de compilation gcc.
  • Corrections pour compilation avec non vide MAKEOBJDIR.
  • Corrections de typos, à New runcmd.awk, et les pages de manuel.

Quoi de neuf dans la version 1.4.4:

  • Un bug dans l'élimination des sous-répertoires dans un répertoire temporaire était fixe.
  • Améliorations pour runawk_modules.3.

Ce qui est nouveau dans la version 1.4.3:

  • paexec (1) ne utilise pas le système ( 3) plus pour enlever le répertoire temporaire.
  • La fonction print_help () a été déplacé du module de power_getopt.awk à init_getopt.awk.

Quoi de neuf dans la version 1.4.2:

  • Cette version ajoute runawk_modules.3 où tous les modules sont documentée, Réprouve options longues, supprime les options -i et -I, et inclut les pages de manuel dans l'archive de distribution afin pod2man ne est pas nécessaire pour la construction.

Ce qui est nouveau dans la version 1.4.0:

  • Dans exitnow.awk, le exitnow (état) fonction se termine maintenant l'exécution du script sans courir sections d'extrémité, même si le statut == 0.
  • Le nouveau module comprend io.awk {fichier, dir, exec, prise, FIFO, blockdev, chardev, lien symbolique} des fonctions, file_size et file_type. tokenre.awk a la nouvelle splitre0 de fonction ().

Quoi de neuf dans la version 1.3.2:

  • réseaux internes sont maintenant transférés automatiquement. Cela corrige utilisation de runawk (1) en combinaison avec xargs (1), par exemple, chat files.txt |. Xargs runawk -e '...'

Quoi de neuf dans la version 1.3.0:

  • Un correctif pour un message d'avertissement du compilateur Intel C.
  • Un correctif pour la fonction shquote () à partir de modules / shquote.awk.
  • Le code source du projet a été réorganisé, ce qui permet une installation facile du tout sous-projet:. Exemples, modules, runawk, alt_getopt et doc (TODO, README, etc. fichiers)

Quoi de neuf dans la version 1.1.0:

  • Une option -F a été ajouté
  • Nouveaux ord.awwas ftrans_in.awk, et des modules de glob.awk ont ​​été inclus.
  • Une nouvelle exécutable alt_getopt a été inclus pour analyser les options courtes et longues dans les scripts shell.
  • Nouveau min3, min4, min5, min_key, MIN_VALUE et key_of_min_value (min.awk) et max3, max4, max5, max_key, max_value et key_of_max_value (max.awk) fonctions ont été fournis.
  • De nouveaux échantillons ont été ajoutés:. Examples / demo_minmax, exemples / demo_tokenre3, exemples / demo_ftrans, exemples / demo_glob *
  • Une nouvelle fonctionnalité a été ajoutée dans multisub.awk.
  • améliorations mineures ont été apportées à la procédure d'installation.

Quoi de neuf dans la version 0.16.0:

  • Beaucoup de programmes de démonstration pour la plupart des modules ont été créés runawk et ils sont dans les exemples / de ne importe maintenant. Nouveau module MEGA;-) power_getopt.awk voir les exemples de documentation et de programmes de démonstration / demo_power_getopt. Il rend les options de manipulation très facile. Nouveaux modules: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk corrections et améliorations dans dirname.awk et basename.awk mineures. Maintenant, ils sont entièrement compatibles avec dirname (1) et basename (1) RUNAWK définit les variables d'environnement suivantes pour le sous-processus de awk des enfants: RUNAWK_MODC - Un certain nombre de modules (de nom de fichier -f) passé à AWK RUNAWK_MODV_ - chemin complet vers le module #n , où n est dans [0..RUNAWK_MODC) gamme. RUNAWK définit RUNAWK_ART_STDIN variable d'environnement pour la awk des enfants sous-processus à 1 si supplémentaires / artificielle `- 'a été ajouté à la liste des arguments de awk. Makefile: bmake-isme ont été enlevés. Maintenant Makefile est compatible avec FreeBSD marque. CleanFiles cible est utilisé à la place de règles faites à la main Correction mineure dans la cible "de test_all '

Logiciel similaire

DOS33
DOS33

3 Jun 15

ccache
ccache

20 Feb 15

GNU Automake
GNU Automake

22 Jun 18

D'autres logiciels de développeur Aleksey Cheusov

LMDBG
LMDBG

20 Feb 15

DictEm
DictEm

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Commentaires à runawk

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!