runawk

Tela Software:
runawk
Detalhes de Software:
Versão: 1.5.0
Data de upload: 19 Feb 15
Revelador: Aleksey Cheusov
Licença: Livre
Popularidade: 76

Rating: 1.0/5 (Total Votes: 1)

runawk é um pequeno invólucro para AWK intérprete que impements módulo do sistema e ajuda a escrever os programas AWK autônomos.
MOTIVAÇÃO
Depois de anos usando AWK para a programação que eu achei que, apesar de
sua simplicidade e limitações AWK é bom o suficiente para execução de scripts de uma ampla
gama de diferentes tarefas. AWK não é tão potente como a sua maior
homólogos, como Perl, Ruby, TCL e outros, mas ele tem o seu próprio
vantagens como compacidade, simplicidade e disponibilidade em quase todos
Sistemas Unix-like. Eu, pessoalmente, também gosto de sua natureza orientada a dados e
orientação forma, técnica muito útil para o processamento de texto simples
utilitários.
Mas A! Infelizmente awk intérpretes carece de algumas características importantes e
às vezes não funciona tão bom quanto ele whould ser.
Alguns problemas que eu vejo (alguns deles, é claro).
1) AWK não tem suporte para módulos. Mesmo se eu criar pequenos programas, I
muitas vezes querem usar as funções criados anteriormente e já utilizado em
outros scripts. Ou seja, ele Whould ótimo orginise funções em
chamada bibliotecas (módulos).
2) A fim de passar argumentos para #! / Usr / bin / awk -f roteiro (não awk
intérprete), é necessário para uma lista de prepand
argumentos com - (dois signes menos). No meu ponto de vista, isso parece mal.
Exemplo:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; INÍCIO {
& 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; }
Sessão Shell:
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: opção desconhecida --opt1 ignorado
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: opção desconhecida --opt2 ignorado
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - OPT1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Na minha opinião awk_program script deve funcionar assim (como
programas normais fazem)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - OPT1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
É possível usar runawk.
3) Quando #! / Usr / bin / awk -f script lida com argumentos (opções) e quer
para ler de stdin, é necessário adicionar
/ Dev / stdin (ou '-') como um último argumento explicitamente.
Exemplo:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; INÍCIO {
& 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] = "" # para não ler o arquivo com o nome "--flag"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; print "flag =" bandeira "$ 0 =" $ 0
& Nbsp; & nbsp; & nbsp; }
Sessão Shell:
& Nbsp; & nbsp; & nbsp; % Echo teste | awk_program - --flag
& Nbsp; & nbsp; & nbsp; % Echo teste | awk_program - --flag / dev / stdin
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Idealmente awk_program deve funcionar como este
& Nbsp; & nbsp; & nbsp; Teste echo% | awk_program --flag
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Todos estes probles são resolvidos por runawk e é por isso que eu escrevi.
Eu também incluir alguns módulos para runawk distribuição que são
útil para mim e eu espero que seja útil para você também.
Instalação
0) BSD composição é necessária. I nomeia-o apenas 'fazer', mas seu nome real pode
& Nbsp; & nbsp; variar. & nbsp; bmake e pmake são possíveis nomes.
& Nbsp; & nbsp; Se você precisar alterar as opções de construção padrão,
& Nbsp; & nbsp; executar fazer como este
& Nbsp; & nbsp; & nbsp; & nbsp; env [YOUR_ASSIGNMENTS] make
& Nbsp; & nbsp; Veja o exemplo abaixo seção
1) tarball Uncompress que você tenha baixado como este
& Nbsp; & nbsp; gzip -dc runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) fazer
4) (opcional!) Make install-dirs
5) make install
Há uma série de variáveis ​​Makefile que pode ser alterado durante
. instalação & nbsp; Variáveis ​​próprias do Runawk (Tudo o que eles estão no início de
Makefile):
& Nbsp; PREFIX & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Onde está instalada a runawk
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Diretório onde os módulos são instalados
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Caminho para awk intérprete
& Nbsp; STDIN_FILENAME - caminho para o arquivo de dispositivo stdin
Variáveis ​​BSD do make (mais comumente utilizados,
para todos os outros - consulte a documentação do make e arquivos .mk)
& Nbsp; BINDIR - onde runawk executável em si é instalado
& Nbsp; MANDIR - onde as páginas do manual são instalados
& Nbsp; BINOWN - runawk proprietário executável
& Nbsp; BINGRP - runawk grupo executável
& Nbsp; MANOWN - página proprietário homem
& Nbsp; MANGRP - homem do grupo de páginas
Exemplo:
& 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 = usuários
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = usuários
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = nenhum
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; -s fazer tudo instalar-dirs instalar

O que é novo nesta versão:

  • As opções -i, -I e todas as opções de comprimento foram completamente removido.
  • O -T opção foi adicionada para a entrada de guias.
  • A opção -v é documentado na página do manual.
  • Correções para avisos gcc compilação.
  • Correções para compilação com MAKEOBJDIR não vazio.
  • Correção de erros em Nova, runcmd.awk e páginas do manual.

O que é novo na versão 1.4.4:

  • Um bug na remoção de subdiretórios em um diretório temporário foi fixa.
  • Melhorias para runawk_modules.3.

O que é novo na versão 1.4.3:

  • paexec (1) não usa o sistema ( 3) mais para remover o diretório temporário.
  • O print_help function () foi movida a partir do módulo power_getopt.awk para init_getopt.awk.

O que é novo na versão 1.4.2:

  • Esta versão acrescenta runawk_modules.3 onde todos os módulos estão documentada, deprecates opções longas, remove as opções -i e -i, e inclui páginas man no tarball distribuição de modo pod2man não é necessária para a construção.

O que é novo na versão 1.4.0:

  • Em exitnow.awk, o exitnow (status) função agora termina a execução do script sem correr seções final, mesmo se o status == 0.
  • O novo módulo io.awk inclui as funções is_ {file, dir, exec, socket, fifo, blockdev, chardev, link simbólico}, file_size e file_type. tokenre.awk tem o novo splitre0 function ().

O que é novo na versão 1.3.2:

  • matrizes internos são agora transferida automaticamente. Isso corrige uso de runawk (1) em combinação com xargs (1), por exemplo, files.txt gato |. Xargs runawk -e '...'

O que é novo na versão 1.3.0:

  • A correção para uma mensagem de aviso do compilador Intel C.
  • A correção para o shquote function () a partir de módulos / shquote.awk.
  • O código-fonte do projeto foi reorganizada, permitindo assim uma fácil instalação de qualquer subprojeto:. Exemplos, módulos, runawk, alt_getopt, e doc (TODO, README, etc. arquivos)

O que é novo na versão 1.1.0:

  • A opção -F foi adicionado
  • Novos ord.awwas ftrans_in.awk e módulos glob.awk foram incluídos.
  • Um novo executável alt_getopt foi incluído para analisar opções de curtas e longas em shell scripts.
  • New min3, min4, min5, min_key, MIN_VALUE e key_of_min_value (min.awk) e max3, Max4, max5, max_key, max_value e key_of_max_value (max.awk) funções foram fornecidos.
  • foram adicionadas novas amostras:. Examples / demo_minmax, exemplos / demo_tokenre3, exemplos / demo_ftrans, exemplos / demo_glob *
  • Um novo recurso foi adicionado em multisub.awk.
  • Pequenas melhorias foram feitas no âmbito do processo de instalação.

O que é novo na versão 0.16.0:

  • foram criados muitos programas de demonstração para a maioria dos módulos runawk e eles estão em examples / subdiretório agora. Novo módulo MEGA;-) power_getopt.awk Veja a documentação e exemplos de programas demo / demo_power_getopt. Faz opções de manuseio muito fácil. Novos módulos: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk pequenas correções e melhorias na dirname.awk e basename.awk. Agora, eles são totalmente compatíveis com dirname (1) e nome base (1) RUNAWK define as seguintes variáveis ​​de ambiente para o subprocess awk criança: RUNAWK_MODC - Uma série de módulos (filename -f) passado para AWK RUNAWK_MODV_ - Caminho completo para o módulo #n , onde n é em [0..RUNAWK_MODC) gama. RUNAWK define variável de ambiente RUNAWK_ART_STDIN para o subprocess awk criança a 1, se forem complementares / artificial '-' foi adicionado à lista de argumentos do awk. Makefile: bmake-ism foram removidos. Agora Makefile é totalmente compatível com o FreeBSD make. Alvo CLEANFILES é usado em vez de regras feitas à mão pequena correção em target 'test_all'

Programas semelhantes

Jess
Jess

3 Jun 15

D frontend for GCC
D frontend for GCC

14 Apr 15

CMake
CMake

16 Aug 18

Jikes RVM
Jikes RVM

15 Apr 15

Outro software de desenvolvedor Aleksey Cheusov

LMDBG
LMDBG

20 Feb 15

paexec
paexec

20 Feb 15

DictEm
DictEm

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Comentário para runawk

Comentários não encontrado
Adicionar comentário
Ligue imagens!