runawk

نرم افزار تصویر:
runawk
جزئیات نرم افزار:
نسخه: 1.5.0
ها تاریخ: 19 Feb 15
توسعه دهنده: Aleksey Cheusov
پروانه: رایگان
محبوبیت: 20

Rating: nan/5 (Total Votes: 0)

در runawk لفاف بسته بندی کوچک برای مترجم AWK که سیستم ماژول impements و کمک می کند تا ارسال برنامه های AWK مستقل است.
انگیزه
پس از سال ها با استفاده از AWK برای برنامه نویسی من پیدا کردم که با وجود از
سادگی و محدودیت های آن AWK به اندازه کافی خوب برای اسکریپت گسترده ای است
طیف وسیعی از وظایف متفاوت است. AWK است به عنوان قدرتمند به عنوان بزرگتر خود نمی
همتایان مانند پرل، روبی، TCL و دیگر اما آن را تا به خود
مزایا مانند فشردگی، سادگی و در دسترس بودن تقریبا بر روی همه
سیستم های یونیکس مانند. من شخصا نیز مانند طبیعت داده محور و
گرایش رمز، روش بسیار مفید برای پردازش متن ساده
آب و برق.
اما! متاسفانه AWK مترجمان شفاهی فاقد برخی از ویژگی های مهم و
گاهی اوقات یک کار خوب آن را به عنوان whould باشد.
برخی از مشکلات من (برخی از آنها، البته) را ببینید.
1) AWK فاقد پشتیبانی از ماژول های. حتی اگر من برنامه های کوچک ایجاد کنید، من
اغلب مایل به استفاده از توابع پیش از ایجاد و در حال حاضر در مورد استفاده
اسکریپت های دیگر. است که، آن whould بزرگ به orginise توابع به
بنابراین کتابخانه (ماژول) نامیده می شود.
2) به منظور تصویب استدلال به #! / usr / شاخه بن / AWK -f اسکریپت (نه به AWK
مترجم)، لازم است تا prepand یک لیست از
استدلال با - (دو منهای signes). به نظر من، این به نظر می رسد بد.
به عنوان مثال:
awk_program:
و nbsp؛ & nbsp؛ در و nbsp؛ #! / usr / شاخه بن / AWK -f
و nbsp؛ & nbsp؛ در و nbsp؛ {شروع
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ برای (من = 1؛ من و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ printf را "ARGV [٪ D] =٪ s" را، من، ARGV [من]
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ }
و nbsp؛ & nbsp؛ در و nbsp؛ }
جلسه شل:
و nbsp؛ & nbsp؛ در و nbsp؛ ٪ awk_program --opt1 --opt2
و nbsp؛ & nbsp؛ در و nbsp؛ دایرکتوری / usr / بن / AWK: گزینه ناشناخته --opt1 نادیده گرفته
و nbsp؛ & nbsp؛ در و nbsp؛ دایرکتوری / usr / بن / AWK: گزینه ناشناخته --opt2 نادیده گرفته
و nbsp؛ & nbsp؛ در و nbsp؛ ٪ awk_program - --opt2 --opt1
و nbsp؛ & nbsp؛ در و nbsp؛ ARGV [1] = - opt1
و nbsp؛ & nbsp؛ در و nbsp؛ ARGV [2] = - opt2
و nbsp؛ & nbsp؛ در و nbsp؛ ٪
به نظر awk_program من اسکریپت باید شبیه به این درست مثل کار (
برنامه های عادی انجام)
و nbsp؛ & nbsp؛ در و nbsp؛ ٪ awk_program --opt1 --opt2
و nbsp؛ & nbsp؛ در و nbsp؛ ARGV [1] = - opt1
و nbsp؛ & nbsp؛ در و nbsp؛ ARGV [2] = - opt2
و nbsp؛ & nbsp؛ در و nbsp؛ ٪
این با استفاده از runawk امکان پذیر است.
3) وقتی #! / usr / شاخه بن / AWK -f اسکریپت دسته استدلال (گزینه) و می خواهد
از STDIN به عنوان خوانده شده، لازم است به اضافه
/ توسعه تمدن / STDIN (یا `- ') به عنوان یک استدلال تاریخ و زمان آخرین صراحت.
به عنوان مثال:
awk_program:
و nbsp؛ & nbsp؛ در و nbsp؛ #! / usr / شاخه بن / AWK -f
و nbsp؛ & nbsp؛ در و nbsp؛ {شروع
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ اگر (ARGV [1] == "--flag") {
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ پرچم = 1
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ ARGV [1] = "" # فایل به نام به عنوان خوانده شده نیست "--flag"
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ }
و nbsp؛ & nbsp؛ در و nbsp؛ }
و nbsp؛ & nbsp؛ در و nbsp؛ {
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ نسخه قابل چاپ "پرچم =" پرچم "$ 0 =" 0 $
و nbsp؛ & nbsp؛ در و nbsp؛ }
جلسه شل:
و nbsp؛ & nbsp؛ در و nbsp؛ ٪ اکو آزمون | awk_program - --flag
و nbsp؛ & nbsp؛ در و nbsp؛ ٪ اکو آزمون | awk_program - --flag / توسعه تمدن / STDIN
و nbsp؛ & nbsp؛ در و nbsp؛ پرچم = 1 دلار = 0 آزمون
و nbsp؛ & nbsp؛ در و nbsp؛ ٪
در حالت ایده آل awk_program باید شبیه به این کار
و nbsp؛ & nbsp؛ در و nbsp؛ ٪ تست اکو | awk_program --flag
و nbsp؛ & nbsp؛ در و nbsp؛ پرچم = 1 دلار = 0 آزمون
و nbsp؛ & nbsp؛ در و nbsp؛ ٪
همه این probles توسط runawk حل و این است که چرا من آن را نوشتم.
من هم شامل چند ماژول به runawk توزیع که
برای من مفید و من امیدوارم که برای شما مفید خواهد بود بیش از حد.
نصب
0) BSD را مورد نیاز است. من نام آن را فقط "را" اما نام واقعی آن ممکن است
و nbsp؛ & nbsp؛ در متفاوت است. & nbsp؛ bmake و pmake نام امکان پذیر است.
و nbsp؛ & nbsp؛ در اگر شما نیاز به تغییر گزینه های ساختمان به طور پیش فرض،
و nbsp؛ & nbsp؛ در اجرا شبیه به این را
و nbsp؛ & nbsp؛ از & nbsp؛ در و nbsp؛ ENV [YOUR_ASSIGNMENTS] را <هدف>
و nbsp؛ & nbsp؛ در به عنوان مثال بخش زیر مراجعه کنید
1) بسته غیرفشرده شما مثل این را دانلود کرده اید
و nbsp؛ & nbsp؛ در از gzip -dc runawk-X-Y-Z.tar.gz | تار -xf-
2) سی دی runawk-X-Y-Z
3) را
4) (اختیاری!) را نصب-dirs
5) را نصب
هستند بسیاری از متغیرهای makefile در است که می تواند در طول تغییر وجود دارد
. نصب و راه اندازی و nbsp؛ متغیرهای خود Runawk را (همه آنها در ابتدای هستند
makefile در):
& nbsp؛ در PREFIX و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ - که در آن runawk به نصب
& nbsp؛ در MODULESDIR و nbsp؛ & nbsp؛ از & nbsp؛ در و nbsp؛ - شاخه ای که ماژول به نصب
& nbsp؛ در AWK_PROG و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ - مسیر مترجم AWK
& nbsp؛ در STDIN_FILENAME - مسیر STDIN فایل دستگاه
متغیرهای BSD را در (بیشتر مورد استفاده،
برای دیگران - اسناد و مدارک را و فایل های .mk مراجعه کنید)
& nbsp؛ در BINDIR - که در آن runawk اجرایی یا Executable خود را به نصب
& nbsp؛ در MANDIR - که در آن صفحات دستی به نصب
& nbsp؛ در BINOWN - runawk صاحب اجرایی
& nbsp؛ در BINGRP - runawk گروه اجرایی
صاحب صفحه مرد - MANOWN. و nbsp
را لمس کنید و. MANGRP - مرد گروه صفحه
به عنوان مثال:
و nbsp؛ & nbsp؛ در پاکت CC = شورای همکاری خلیج فارس
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ PREFIX = / صفحه اصلی / cheusov / محلی
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ LDFLAGS = '- L مسیر / usr / PKG / معاونت -Wl، -rpath -Wl، دایرکتوری / usr / PKG / معاونت'
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ LDADD = -lextralib
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ CFLAGS = '- Werror -Wall'
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ CPPFLAGS = من به / usr / PKG / شامل
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ BINOWN = cheusov
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ BINGRP = کاربران
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ MANOWN = cheusov
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ MANGRP = کاربران
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ MKCATPAGES = هیچ
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ تمام -s نصب-dirs نصب

چه جدید در این نسخه است:

به گزینه -i، من، و همه گزینه های طولانی به طور کامل حذف شد.
تی گزینه ای برای ورودی جدولبندیشده اضافه شد.
-v گزینه در صفحه آهنا.
رفع برای هشدار تلفیقی شورای همکاری خلیج فارس.
رفع برای تدوین با MAKEOBJDIR غیر خالی می باشد.
رفع خطای تایپی در صفحات جدید، runcmd.awk، و مرد.

جدید در نسخه 1.4.4 است:

یک اشکال در از بین بردن زیرشاخه در یک دایرکتوری موقت ثابت شد.
ارتقاء برای runawk_modules.3.

paexec (1) آیا سیستم (3) دیگر برای از بین بردن پوشه موقت استفاده کنید:

جدید در نسخه 1.4.3 است.
print_help تابع () از ماژول power_getopt.awk به init_getopt.awk منتقل شد.

جدید در نسخه 1.4.2 است:

در این نسخه اضافه می کند runawk_modules.3 که در آن تمام ماژول های مستند، deprecates گزینه های طولانی، حذف گزینه -i و من، و شامل صفحات مرد در بسته توزیع تا pod2man است برای ساخت و ساز مورد نیاز است.

جدید در نسخه 1.4.0 است:

در exitnow.awk، exitnow (وضعیت) تابع در حال حاضر پس از اتمام اجرای اسکریپت بدون در حال اجرا بخش END حتی اگر وضعیت == 0.
ماژول جدید io.awk شامل توابع is_ {فایل، پوشه، EXEC، سوکت، FIFO، blockdev، chardev، SYMLINK}، FILE_SIZE، و FILE_TYPE. tokenre.awk است تابع splitre0 جدید ().

جدید در نسخه 1.3.2 است:

در آرایه داخلی در حال حاضر به طور خودکار منتقل کرد. این رفع استفاده از runawk (1) در ترکیب با xargs (1)، به عنوان مثال، files.txt گربه | xargs runawk -e '...'.

جدید در نسخه 1.3.0 است:

یک ثابت برای یک پیغام اخطار کامپایلر اینتل C.
ثابت برای shquote تابع () از ماژول های / shquote.awk.
کد منبع پروژه دوباره سازمان دهی شده است، در نتیجه اجازه می دهد نصب و راه اندازی آسان از هر پروژه فرعی: نمونه، ماژول ها، runawk، alt_getopt و توضیحات (TODO، README، و غیره فایل).

چه جدید در نسخه 1.1.0 است:

یک گزینه اف اضافه شد.
ord.awwas جدید ftrans_in.awk، و ماژول های glob.awk شدند.
اجرایی alt_getopt جدید برای تجزیه گزینه های کوتاه مدت و بلند در اسکریپتهای پوسته گنجانده شد.
min3 جدید، min4، min5، min_key، MIN_VALUE، و key_of_min_value (min.awk)، و MAX3، max4، max5، max_key، max_value، و key_of_max_value (max.awk) توابع ارائه شد.
نمونه های جدید اضافه شد: نمونه / demo_minmax، نمونه / demo_tokenre3، نمونه / demo_ftrans، نمونه / demo_glob *.
ویژگی های جدید در multisub.awk اضافه شد.
پیشرفت های جزئی در روش نصب ساخته شد.

جدید در نسخه 0.16.0 است:

در بسیاری از برنامه های نسخه ی نمایشی برای اکثر ماژول های runawk ایجاد شد و آنها در حال حاضر در نمونه / دایرکتوری فرعی هستند. ماژول جدید MEGA؛-) power_getopt.awk مستندات و برنامه نسخه ی نمایشی نمونه / demo_power_getopt را ببینید. این باعث می شود گزینه دست زدن به واقعا آسان است. ماژول جدید: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk اصلاحات جزیی و بهبود در dirname.awk و basename.awk. در حال حاضر آنها به طور کامل با dirname (1) و اسم سازگار هستند (1) RUNAWK مجموعه متغیرهای محیط زیر را برای فرزند AWK کودک: RUNAWK_MODC - تعدادی از ماژول (نام فایل -f) گذشت به AWK RUNAWK_MODV_ - مسیر کامل به #n ماژول ، که در آن n در [0..RUNAWK_MODC) محدوده است. RUNAWK مجموعه متغیر محیطی RUNAWK_ART_STDIN برای فرزند AWK کودک به 1 اگر اضافی / مصنوعی `- 'را به لیست به استدلال AWK اضافه شد. makefile در: bmake-ISM حذف شدند. در حال حاضر makefile در به طور کامل با بورس را سازگار می باشد. هدف CLEANFILES است به جای قوانین دست ساخته شده ثابت صغیر در 'test_all' هدف استفاده

نرم افزار های مشابه

Tcl/Tk
Tcl/Tk

20 Jan 18

Enchanting
Enchanting

14 Apr 15

Mercury
Mercury

15 Apr 15

Vala
Vala

27 Sep 15

نرم افزار های دیگر از توسعه دهنده Aleksey Cheusov

mk-configure
mk-configure

20 Feb 15

paexec
paexec

20 Feb 15

DictEm
DictEm

20 Feb 15

نظرات به runawk

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!