runawk

Software screenshot:
runawk
Rincian Software:
Versi: 1.5.0
Tanggal Upload: 19 Feb 15
Pengembang: Aleksey Cheusov
Lisensi: Gratis
Popularitas: 20

Rating: nan/5 (Total Votes: 0)

runawk adalah pembungkus kecil untuk AWK interpreter yang impements sistem modul dan membantu untuk menulis program AWK mandiri.
MOTIVASI
Setelah bertahun-tahun menggunakan AWK untuk pemrograman Saya telah menemukan bahwa meskipun
kesederhanaan dan keterbatasan AWK cukup baik untuk scripting lebar
berbagai tugas yang berbeda. AWK ini tidak poweful sebagai besar mereka
rekan-rekan seperti Perl, Ruby, TCL dan lain-lain tetapi memiliki mereka sendiri
keuntungan seperti kekompakan, kesederhanaan dan ketersediaan di hampir semua
Sistem UNIX-like. Saya pribadi juga suka alam data-driven dan
tanda orientasi, teknik yang sangat berguna untuk pengolahan teks sederhana
utilitas.
Tapi! Sayangnya awk juru memiliki beberapa fitur penting dan
kadang-kadang bekerja tidak sebagus whould menjadi.
Beberapa masalah yang saya lihat (beberapa dari mereka, tentu saja).
1) AWK kekurangan dukungan untuk modul. Bahkan jika saya membuat program kecil, saya
sering ingin menggunakan fungsi buat sebelumnya dan sudah digunakan dalam
script lainnya. Artinya, itu whould besar untuk orginise fungsi menjadi
disebut perpustakaan (modul).
2) Dalam rangka untuk lulus argumen untuk #! / Usr / bin / awk -f script (tidak awk
interpreter), perlu untuk prepand daftar
argumen dengan - (dua dikurangi signes). Dalam pandangan saya, ini terlihat buruk.
Contoh:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; BEGIN {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; untuk (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; }
Sesi Shell:
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: tidak diketahui opsi --opt1 diabaikan
& Nbsp; & nbsp; & nbsp; / Usr / bin / awk: tidak diketahui opsi --opt2 diabaikan
& Nbsp; & nbsp; & nbsp; % Awk_program - --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - OPT1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Dalam awk_program pendapat saya naskah harus bekerja seperti ini (seperti
Program yang normal dilakukan)
& Nbsp; & nbsp; & nbsp; % Awk_program --opt1 --opt2
& Nbsp; & nbsp; & nbsp; ARGV [1] = - OPT1
& Nbsp; & nbsp; & nbsp; ARGV [2] = - opt2
& Nbsp; & nbsp; & nbsp; %
Hal ini dimungkinkan dengan menggunakan runawk.
3) Ketika #! / Usr / bin / awk -f naskah menangani argumen (pilihan) dan ingin
untuk membaca dari stdin, perlu untuk menambahkan
/ Dev / stdin (atau `- ') sebagai argumen terakhir secara eksplisit.
Contoh:
awk_program:
& Nbsp; & nbsp; & nbsp; #! / Usr / bin / awk -f
& Nbsp; & nbsp; & nbsp; BEGIN {
& 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] = "" # untuk tidak membaca file bernama "--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; }
Sesi Shell:
& Nbsp; & nbsp; & nbsp; % Gema tes | awk_program - --flag
& Nbsp; & nbsp; & nbsp; % Gema tes | awk_program - --flag / dev / stdin
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Idealnya awk_program harus bekerja seperti ini
& Nbsp; & nbsp; & nbsp; % Uji gema | awk_program --flag
& Nbsp; & nbsp; & nbsp; flag = 1 $ 0 = test
& Nbsp; & nbsp; & nbsp; %
Semua probles ini diselesaikan dengan runawk dan ini adalah mengapa saya menulisnya.
Saya juga menyertakan beberapa modul untuk runawk distribusi yang
berguna bagi saya dan saya berharap akan sangat membantu anda juga.
PEMASANGAN
0) BSD make diperlukan. Aku nama itu hanya 'membuat' padahal nama aslinya mungkin
& Nbsp; & nbsp; bervariasi. & nbsp; bmake dan pmake adalah nama-nama yang mungkin.
& Nbsp; & nbsp; Jika Anda perlu mengubah opsi bangunan default,
& Nbsp; & nbsp; jalankan make seperti ini
& Nbsp; & nbsp; & nbsp; & nbsp; env [YOUR_ASSIGNMENTS] membuat
& Nbsp; & nbsp; Lihat contoh bagian bawah
1) tarball Uncompress Anda men-download seperti ini
& Nbsp; & nbsp; gzip -DC runawk-X-Y-Z.tar.gz | tar -xf-
2) cd runawk-X-Y-Z
3) membuat
4) (opsional!) Make install-dirs
5) make install
Ada banyak variabel Makefile yang dapat diubah selama
. instalasi & nbsp; Variabel Runawk sendiri (Semua mereka pada awal
Makefile):
& Nbsp; PREFIX & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Di mana runawk dipasang untuk
& Nbsp; MODULESDIR & nbsp; & nbsp; & nbsp; & nbsp; - Direktori dimana modul dipasang untuk
& Nbsp; AWK_PROG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; - Jalan ke awk juru
& Nbsp; STDIN_FILENAME - jalan ke stdin file device
Variabel BSD make ini (paling sering digunakan,
untuk semua orang lain - lihat dokumentasi membuat dan file .mk)
& Nbsp; BINDIR - mana runawk executable sendiri dipasang untuk
& Nbsp; Mandir - mana halaman manual dipasang ke
& Nbsp; BINOWN - runawk pemilik executable
& Nbsp; BINGRP - runawk kelompok executable
& Nbsp; MANOWN - man pemilik halaman
& Nbsp; MANGRP - man group page
Contoh:
& 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 = pengguna
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANOWN = cheusov
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MANGRP = pengguna
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; MKCATPAGES = no
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; membuat -s semua install-dirs install

Apa yang baru dalam rilis ini:

  • Pilihan i, -I, dan semua opsi yang panjang benar-benar dihapus.
  • Pilihan -T ditambahkan untuk input tab.
  • Pilihan v didokumentasikan dalam halaman manual.
  • Perbaikan untuk peringatan kompilasi gcc.
  • Perbaikan untuk kompilasi dengan MAKEOBJDIR non-kosong.
  • perbaikan Typo di NEW, runcmd.awk, dan halaman man
  • .

Apa yang baru dalam versi 1.4.4:

  • Sebuah bug dalam menghilangkan subdirektori dalam sebuah direktori sementara itu tetap.
  • Perbaikan untuk runawk_modules.3.

Apa yang baru dalam versi 1.4.3:

  • paexec (1) tidak menggunakan sistem ( 3) lagi untuk menghapus direktori sementara.
  • Fungsi print_help () dipindahkan dari modul power_getopt.awk untuk init_getopt.awk.

Apa yang baru dalam versi 1.4.2:

  • Versi ini menambahkan runawk_modules.3 mana semua modul didokumentasikan, deprecates opsi panjang, menghilangkan opsi -i dan -I, dan termasuk halaman manual dalam tarball distribusi sehingga pod2man tidak diperlukan untuk membangun.

Apa yang baru dalam versi 1.4.0:

  • Dalam exitnow.awk, yang exitnow (status) Fungsi sekarang telah selesai mengeksekusi script tanpa menjalankan bagian END bahkan jika statusnya == 0
  • .
  • Modul baru io.awk meliputi fungsi is_ {file, dir, exec, soket, fifo, blockdev, chardev, symlink}, file_size, dan file_type. tokenre.awk memiliki fungsi splitre0 baru ().

Apa yang baru dalam versi 1.3.2:

  • array internal kini dipindahkan secara otomatis. Ini perbaikan penggunaan runawk (1) dalam kombinasi dengan xargs (1), misalnya, files.txt kucing |. Xargs runawk -e '...'

Apa yang baru dalam versi 1.3.0:

  • Perbaikan untuk Intel C pesan peringatan compiler.
  • Sebuah memperbaiki fungsi shquote () dari modul / shquote.awk.
  • Kode sumber dari proyek telah direorganisasi, sehingga memungkinkan mudah instalasi proyek apapun. Contoh, modul, runawk, alt_getopt, dan doc (TODO, README, dll file)

Apa yang baru dalam versi 1.1.0:

  • Pilihan F ditambahkan
  • ord.awwas baru ftrans_in.awk, dan modul glob.awk dimasukkan.
  • Sebuah alt_getopt executable baru ini dimasukkan untuk parsing pilihan pendek dan panjang dalam skrip shell.
  • min3 Baru, min4, min5, min_key, MIN_VALUE, dan key_of_min_value (min.awk), dan max3, max4, MAX5, max_key, MAX_VALUE, dan key_of_max_value (max.awk) fungsi disediakan.
  • sampel baru ditambahkan: contoh / demo_minmax, contoh / demo_tokenre3, contoh / demo_ftrans, contoh / demo_glob *
  • .
  • Sebuah fitur baru telah ditambahkan dalam multisub.awk.
  • perbaikan kecil dilakukan dalam prosedur instalasi.

Apa yang baru dalam versi 0.16.0:

  • Banyak program demo untuk sebagian besar modul runawk diciptakan dan mereka berada di contoh / subdirektori sekarang. Baru modul MEGA;-) power_getopt.awk Lihat dokumentasi dan program demo contoh / demo_power_getopt. Itu membuat pilihan penanganan benar-benar mudah. Modul baru: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk perbaikan kecil dan perbaikan dalam dirname.awk dan basename.awk. Sekarang mereka sepenuhnya kompatibel dengan dirname (1) dan basename (1) RUNAWK set variabel lingkungan berikut untuk subproses awk anak: RUNAWK_MODC - Sejumlah modul (nama file -f) dilewatkan ke AWK RUNAWK_MODV_ - jalan penuh dengan # N modul , di mana n adalah [0..RUNAWK_MODC) Kisaran. RUNAWK set RUNAWK_ART_STDIN variabel lingkungan untuk subproses awk anak ke 1 jika tambahan / buatan `- 'ditambahkan ke daftar argumen awk itu. Makefile: bmake-isme telah dihapus. Sekarang Makefile sepenuhnya kompatibel dengan FreeBSD make. Target CLEANFILES digunakan sebagai pengganti aturan buatan tangan kecil memperbaiki target 'test_all'

Software yang serupa

bff
bff

3 Jun 15

SmartEiffel
SmartEiffel

3 Jun 15

wwlisp
wwlisp

2 Jun 15

ccache
ccache

20 Feb 15

Perangkat lunak lain dari pengembang Aleksey Cheusov

LMDBG
LMDBG

20 Feb 15

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

Komentar untuk runawk

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!