AWK: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
LetsDoItBot (بحث | مشارکتها) تمیزکاری، + ویرایش با ماژول ابرابزار با استفاده از AWB |
FreshmanBot (بحث | مشارکتها) جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB |
||
خط ۱۵:
}}
{{کاربردهای دیگر}}
'''AWK''' یک [[زبان برنامهنویسی مفسری]] است که برای [[پردازش متن]] طراحی شده و عموماً به عنوان ابزاری برای گزارشگیری و استخراج دادهها مورد استفاده قرار میگیرد. این زبان برنامهنویسی، تبدیل به یکی از ویژگیهای استاندارد در سیستمعاملهای خانواده [[یونیکس]]
زبان AWK در دهه ۱۹۷۰ در ''[[آزمایشگاههای بل]] طراحی شد. نام این زبان از نام خانوادگی طراحان آن Alfred Aho, Peter Weinberger, و Brian Kernighan گرفته
زبان برنامهنویسی AWK یک زبان اسکریپتی [[دادهمحور]] است؛ این زبان عموماً از یکسری دوجفتی ''الگو'' (pattern) و ''عمل'' (action) تشکیل میشود که قرار است بر روی یکسری دادههای متنی اجرا شود؛ که این دادههای متنی یا از فایلهای عادی خوانده میشوند، یا اینکه از طریق [[لولهبندی (یونیکس)|خط لوله]] بدست میآیند. به کمک AWK میتوان اطلاعاتی را از این دادههای متنی استخراج کرد یا اینکه گزارشهایی قالببندیشده از
== تاریخچه ==
زبان برنامهنویسی AWK در ابتدا در سال ۱۹۷۷ توسط Alfred Aho, Peter Weinberger, و Brian Kernighan ساخته شد. نام این زبان از حرف اول نام خانوادگی تولیدکنندگانش گرفته
زبان AWK در طی سالهای ۱۹۸۵–۱۹۸۸
زبان AWK پس از دستور sed (سال ۱۹۷۴) درست شد. هر دو این ابزارها برای پردازش متن درست شدهاند. هر دو
== ساختار برنامههای AWK ==
خط ۳۷:
</source>
که در کد بالا، بخش condition یک عبارت است و بخش action هم دنبالهای از دستورها است. فایل ورودی به یکسری رکورد شکسته میشود.
بخش condition علاوه بر اینکه میتواند شامل عبارتهای سادهای همچون foo == ۱ یا /^foo/ باشد، میتواند کلمات مخصوصی همچون BEGIN یا END هم باشد. در مورد BEGIN، بخش action متناظر پیش از خواندهشدن اولین رکورد اجرا میشود، و در مورد END، بخش action متناظر، پس از خواندهشدن آخرین رکورد اجرا میشود. بخش condition همچنین میتواند به صورت pattern1, pattern2 باشد که در این صورت، بخش action متناظر بر روی محدودهای از خطوط اجرا میشود که شروع این محدوده اولین خطی است که حاوی pattern1 است و پایان این محدوده هم خطی است که حاوی pattern2 است.
عبارات AWK علاوه بر اینکه میتوانند حاوی عملگرهای منطقی و محاسباتی عادی باشند، میتوانند حاوی عملگر تیلد tilde هم باشند (~) که این عملگر، یک عبارت باقاعده را بر روی یک رشته آزمایش میکند. به جای استفاده از این عملگر همچنین میتوان از سینتکس /regexp/ استفاده کرد. این سینتکس از sed گرفته
== منابع ==
|