runawk

Screenshot Software:
runawk
Mga detalye ng Software:
Bersyon: 1.5.0
I-upload ang petsa: 19 Feb 15
Nag-develop: Aleksey Cheusov
Lisensya: Libre
Katanyagan: 20

Rating: nan/5 (Total Votes: 0)

runawk ay isang maliit na wrapper para sa AWK interpreter na impements module ng system at tumutulong upang isulat ang nakapag-iisa AWK mga programa.
pagganyak
Pagkatapos ng mga taon ng paggamit AWK para sa programming nalaman ko na sa kabila ng
pagiging simple nito at limitasyon AWK ay mabuti sapat para sa scripting ng malawak na
hanay ng mga iba't-ibang mga gawain. AWK ay hindi bilang poweful bilang kanilang mas malaki
mga katapat tulad ng Perl, Ruby, TCL at iba pa ngunit ito ay may kanilang sariling
kalamangan tulad ng limit, pagiging simple at pagiging available sa halos lahat
UNIX-tulad ng mga system. Gusto ko personal din na hinimok ng data likas na katangian nito at
token na oryentasyon, napaka-kapaki-pakinabang na diskarte para sa simpleng pagproseso ng teksto
utilities.
Ngunit! Sa kasamaang palad awk interprete Kulang ilang mahahalagang mga tampok at
minsan gagana Hindi kasing ganda ng whould ito.
May ilang mga problema nakikita ko (ilan sa mga ito, siyempre).
1) Walang suporta para sa mga module AWK. Kahit na makakalikha ng maliit na mga programa, ako
madalas niyong gamitin ang function na nilikha mas maaga at ginagamit na sa
iba pang mga script. Iyon ay, ito whould mahusay na orginise mga function sa
kaya tinatawag na mga aklatan (mga module).
2) Upang makapasa argumentong #! / Usr / bin / awk -f script (hindi sa awk
interpreter), ito ay kinakailangan upang prepand isang listahan ng mga
argumento sa - (minus dalawang signes). Sa aking view, ito ay mukhang di-wastong.
Halimbawa:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; BEGIN {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {para sa (i 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: hindi kilalang pagpipilian --opt1 pinansin
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: hindi kilalang pagpipilian --opt2 pinansin
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - opt1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Sa aking opinyon awk_program script ay dapat na gumana tulad nito (tulad lamang ng
normal na mga programa gawin)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - opt1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Posible gamit runawk.
3) Kapag humahawak #! / Usr / bin / awk -f script argumento (mga pagpipilian) at nais
na magbasa mula sa stdin, ito ay kinakailangan upang magdagdag ng
/ Dev / stdin (o `- ') bilang isang huling argumento explicitely.
Halimbawa:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; BEGIN {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kung (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] = "" # upang hindi mabasa ang file na pinangalanang "--flag"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; naka-print na "i-flag =" i-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; %
May perpektong awk_program ay dapat na gumana tulad nito
& Nbsp; & nbsp; & nbsp; % Echo test | awk_program --flag
& Nbsp; & nbsp; & nbsp; -flag = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Ang lahat ng mga probles ay malutas sa pamamagitan ng runawk at ito ang dahilan kung bakit sinulat ni ko ito.
Kasama ko rin ang ilang mga module sa runawk pamamahagi na
kapaki-pakinabang para sa akin at Umaasa ako ay magiging kapaki-pakinabang para sa iyo masyadong.
INSTALL
0) BSD make ay kinakailangan. Pangalanan ko ito 'gumawa' lang pero tunay na pangalan nito ay maaaring
& Nbsp; & nbsp; mag-iba. & nbsp; bmake at pmake ay posible pangalan.
& Nbsp; & nbsp; Kung kailangan mong baguhin ang mga pagpipilian sa default na gusali,
& Nbsp; & nbsp; tumakbo gawing tulad nito
& Nbsp; & nbsp; & nbsp; & nbsp; env [YOUR_ASSIGNMENTS] gumawa
& Nbsp; & nbsp; Tingnan ang halimbawa na seksyon sa ibaba
1) uncompress tarball na-download mo tulad nito
& Nbsp; & nbsp; gzip -dc runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) gumawa ng mga
4) (opsyonal!) Gumawa ng mga mag-install ng-dirs
5) gumawa ng mga mag-install
Maraming ng Makefile mga variable na maaaring magbago habang
.-install & nbsp; Sariling mga variable Runawk ng (Lahat ng mga ito ay sa begining ng
Makefile):
& Nbsp; PREFIX & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Kung saan runawk naka-install sa
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Direktoryo kung saan ang mga module ay na-install sa
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Path sa awk interpreter
& Nbsp; STDIN_FILENAME - path sa file device stdin
Variable BSD make ng (pinaka karaniwang na ginagamit,
para sa lahat ng iba pa - tingnan ang dokumentasyon make at .mk mga file)
& Nbsp; BINDIR - kung saan runawk executable mismo ay naka-install sa
& Nbsp; MANDIR - kung saan manu-manong mga pahina ay naka-install sa
& Nbsp; BINOWN - runawk executable may-ari
& Nbsp; BINGRP - runawk executable grupo
& Nbsp; MANOWN - may-ari ng tao na pahina
& Nbsp; MANGRP - pangkat ng tao na pahina
Halimbawa:
& Nbsp; & nbsp; env CC = GCC
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; PREFIX = / bahay / 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 / isama
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; BINOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; BINGRP = user
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = user
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = walang
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; gumawa install-dirs -s lahat install

Ano ang bagong sa paglabas:

  • Ang mga pagpipilian -i, -I, at lahat ng mahaba ang pagpipilian ay ganap na inalis.
  • Ang pagpipiliang -T ay idinagdag para sa naka-tab na pag-input.
  • Ang pagpipiliang -v ay dokumentado sa pahina ng tao.
  • Pag-aayos para sa mga babala GCC compilation.
  • Pag-aayos para sa pagsasama-sama sa mga di-walang laman MAKEOBJDIR.
  • pag-aayos ng typo sa BAGONG, runcmd.awk, at mga pahina ng tao.

Ano ang bagong sa bersyon 1.4.4:

  • Ang isang bug sa pag-aalis ng mga subdirectory sa isang pansamantalang direktoryo ay naayos na.
  • Pagpapabuti para sa runawk_modules.3.

Ano ang bagong sa bersyon 1.4.3:

  • paexec (1) ay hindi gumagamit ng (sistema 3) na ngayon para sa pag-alis ng pansamantalang direktoryo.
  • Ang function na print_help () ay inilipat mula sa module ng power_getopt.awk sa init_getopt.awk.

Ano ang bagong sa bersyon 1.4.2:

  • Ang bersyon na ito ay nagdadagdag ng runawk_modules.3 kung saan ang lahat ng mga module na dokumentado, deprecates mahaba pagpipilian, inaalis ang -i at -I mga pagpipilian, at may kasamang lalaki mga pahina sa tarball pamamahagi sa gayon pod2man ay hindi kinakailangan para sa gusali.

Ano ang bagong sa bersyon 1.4.0:

  • Sa exitnow.awk, ang exitnow (katayuan) function na natapos na ngayon ang pagpapatupad ng mga script nang hindi tumatakbo END seksyon kahit na katayuan == 0.
  • Ang bagong module io.awk kinabibilangan ng mga pag-andar is_ {file, dir, exec, socket, fifo, blockdev, chardev, symlink}, file_size, at FILE_TYPE. tokenre.awk ay may bagong pag-andar splitre0 ().

Ano ang bagong sa bersyon 1.3.2:

  • Panloob na array ay awtomatikong relocated ngayon. Inaayos na ito paggamit ng runawk (1) kasama xargs (1), hal, pusa files.txt |. Xargs runawk -e '...'

Ano ang bagong sa bersyon 1.3.0:

  • Ang isang pag-aayos para sa isang Intel C babala tagatala ng mensahe.
  • Ang isang pag-aayos para sa pag-andar shquote () mula sa mga module / shquote.awk.
  • Ang source code ng proyekto ay na-reorganized, kaya nagbibigay-daan sa isang madaling i-install ng anumang subproject:. Halimbawa, module, runawk, alt_getopt, at doc (TODO, Readme, atbp mga file)

Ano ang bagong sa bersyon 1.1.0:

  • May pagpipilian -F ay naidagdag
  • Bagong ord.awwas ftrans_in.awk, at glob.awk module ay kasama.
  • Isang bagong alt_getopt executable ay isinama para sa pag-parse ng maikli at mahabang mga pagpipilian sa shell script.
  • Bagong min3, min4, min5, min_key, min_value, at key_of_min_value (min.awk), at max3, max4, max5, max_key, max_value, at key_of_max_value (max.awk) function ay ibinigay.
  • Bagong sampol ay idinagdag:. Halimbawa / demo_minmax, halimbawa / demo_tokenre3, halimbawa / demo_ftrans, halimbawa / demo_glob *
  • Ang isang bagong tampok ay naidagdag sa multisub.awk.
  • Maliliit na pagpapabuti ay ginawa sa pamamaraan ng pag-install.

Ano ang bagong sa bersyon 0.16.0:

  • Maraming demo programa para sa karamihan ng runawk module ay nilikha at ang mga ito ay mga halimbawa / subdirectory ngayon. Bagong Mega module;-) power_getopt.awk Tingnan ang dokumentasyon at demo programa halimbawa / demo_power_getopt. Ginagawang pagpipilian sa paghawak talagang madali. Bagong module: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk Minor pag-aayos at pagpapabuti sa mga dirname.awk at basename.awk. Ngayon ang mga ito ay ganap na tumutugma sa (1) dirname at basename (1) Nagtatakda RUNAWK ang mga sumusunod na mga variable na kapaligiran para sa mga bata awk subprocess: RUNAWK_MODC - Isang bilang ng mga module (-f filename) na ipinasa sa AWK RUNAWK_MODV_ - Ganap na path sa module #n , kung saan n ay nasa [0..RUNAWK_MODC) saklaw. RUNAWK Nagtatakda RUNAWK_ART_STDIN environment variable para sa mga bata awk subprocess sa 1 kung karagdagang / artipisyal na `- 'ay naidagdag sa listahan sa argumento awk iyon. Makefile: bmake-turo ay inalis. Ngayon Makefile ay ganap na tumutugma sa FreeBSD make. Target CLEANFILES ay ginagamit sa halip ng mga panuntunan hand-made Minor pag-aayos sa target na 'test_all'

Katulad na software

Iba pang mga software developer ng Aleksey Cheusov

paexec
paexec

20 Feb 15

LMDBG
LMDBG

20 Feb 15

DictEm
DictEm

20 Feb 15

Mga komento sa runawk

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!