Self-contained AWK scripts
پنج شنبه 2 دی 1389 7:20 AM
به عنوان مثال با خیلی از زبانهای برنامه نویسی دیگر خود شمولی AWK script میتواند با سازنده برای استفاده کردن از so-called " shebang" syntax به عنوان مثال دستور UNIX فراخوانی میکند hello.awk که چاپ میکند رشته "Hello, world!" که جزوی از ساختمانی است که وسیله اسم فایل ساخته میشود hello.awkکه شامل خط زیر میباشد.
usr/bin/awk -f/#!
{"!BEGIN { print "Hello, world
-f به awk میگوید یک آرگومان که فایل را دنبال میکند تا برنامه awk از آن بخواند ، که به وسیله shell وقتی که اجرا میشود جایگزین میشود.
AWK به طور کلی در سال 1977 نوشته شد و با ورژن 7 Unix توزیع شد. در سال 1985 نویسندههای آن به وسیله اضافه کردن توابع user-defined شروع به گسترش زبان کردند.در کتاب AWK Programming Language زبان توضیح داده شد و در سال 1988 منتشر و پیاده سازی شد وبا UNIX System V عرضه شد.برای پرهیز از اشتباه شدن با ورژنهای قدیمی ناسازگار بعضی وقتها این ورژن به عنوان "new awk" یا nawk شناخته میشد.این پیاده سازی تحت لیسانس free software license در 1996 عرضه شد وهمچنان توسط Brian Kernighan نگهداری میشود . BWK awk رجوع میکند به ورژن Brian W. Kernighan .که دوبله میکند "One True AWK" بخاطر استفاده کردن از اصطلاح در وابسته سازی با کتاب که به طور کلی زبان را توصیف میکند. و حقیقت این است که Kernighan یکی از نویسندگان اصلی awk است . FreeBSD به این ورژن مراجعه میکند به عنوان مثال one-true-awk.این ورژن اغلب ویژگی هایش در این کتاب نبود.از قبیل tolower وENVIRON که در بالا توضیح داده شده است. gawk (GNU awk) یک نرمافزار آزاد دیگر است که پیاده سازی شد و تنها پیاده سازی است که تلاش جدی در انجام داده i18n دارد.و اغلب به کاربر اجازه میدهد که تابعیت برنامه خود را با کتابخانههای اشتراکی نوشته شده توسط کاربر توسعه دهد.که قبل از پیاده سازی اصلی نوشته شد که به صورت آزاد موجود بود.و هنوز به طور گسترده استفاده میشود.خیلی از نسخههای Linux با این ورژن اخیرgawk آمدند وgawk به طور وسیعی به عنوان de-facto پیاده سازی استاندارد در دنیای Linux شناخته شد. gawk ورژن 3 شامل awk در FreeBSD تا پیش از ورژن 5 بود.ورژنهای بعدی FreeBSD از BWK awk برای جلوگیری از GPL استفاده کردند.محدود کردن بیشتر (در این جهت که GPL لیسانس کد نمیتواند باعث اختصاصی شدن یک نرمافزار شود.)لیسانس از BSD لیسانس. xgawk یک پروژه SourceForge که برا ساس gawk است.که gawk را با کتابخانههای قابل بارگذاری پویا گسترش داده است. mawk یک پیاده سازی AWK مرجع است که به وسیله Mike Brennan و براساس مفسر بایت کد میباشد . ورژن قدیمی Unix از قبیل UNIX/32V شامل awkcc که تبدیل کننده AWK به C بود. Kernighan برنامهای برای تبدیل awk به C++ نوشت ولی این حالت شناخته شده نیست. awka (کسی که با انتها در نوشتن در بالای برنامه mawk مواجه شد .)که یک مترجم دیگر از awk به C میباشد .وقتی که کامپایل میشود شامل نویسنده libawka.a میباشد نتیجه اجرایی به طور اهم براساس تست مقایسه نویسنده با سایر ورژنهای awk, perl یا tcl میباشد. scripts کوچک میتوانند به برنامههای 160-170 kB تبدیل شوند. Thompson AWK یا TAWK یک کامپایلر AWKبرای Solaris , DOS, OS/2, و Windows که توسط Thompson Automation Software قبلا فروخته شد.(که فعالیتهایش را متوقف میکند). Jawk یک SourceForge پروژه است که AWK را در Java پیاده سازی میکند. ویژگیهایی به زبان اضافه شد تا دسترسی به ویژگیهای Java در داخل AWK را فراهم کند. BusyBox شامل پروندههای پراکنده که ظاهر میشود تا کامل کند ،نوشته شده به وسیله Dmitry Zakharov .این یک پیاده سازی کوتاه و مناسب برای سیستمهای جاسازی شده میباشد.