آموزش زبان برنامه نویسی AWK

Awk یک زبان برنامه نویسی است که برای دست‌کاری داده‌ها و تولید گزارش استفاده می‌شود. زبان برنامه نویسی دستوری awk نیازی به کامپایل ندارد و به کاربر اجازه می‌دهد از متغیرها، توابع عددی، توابع رشته‌ای ...

4.5 (11 امتیاز)
1,052 دانشجو
مقدماتی
محتوای دوره
درباره دوره
نظرات کاربران
درباره استاد

آنچه در این دوره می‌آموزید

آموزش Awk

آموزش برنامه نویسی Awk

کار با Awk

نحوه کار با Awk

محتوای دوره

1 فصل 2 جلسه 1:13 ساعت ویدیو
آموزش برنامه نویسی به زبان AWK

درباره دوره

Awk یک زبان برنامه نویسی است که برای دست‌کاری داده‌ها و تولید گزارش استفاده می‌شود. زبان برنامه نویسی دستوری awk نیازی به کامپایل ندارد و به کاربر اجازه می‌دهد از متغیرها، توابع عددی، توابع رشته‌ای و عملگرهای منطقی استفاده کند. دوره آموزش برنامه نویسی AWK با هدف آموزش این زبان در مکتب خونه تهیه شده است. قبل از اینکه به معرفی این دوره آموزشی AWK بپردازیم ابتدا مقدمه‌ای کوتاه در رابطه با AWK و رسالت آن صحبت خواهیم کرد.

مقدمه‌ای بر AWK

Awk ابزاری است که برنامه نویس را قادر می‌سازد تا برنامه‌های کوچک اما مؤثری را در قالب عباراتی بنویسد که الگوهای متنی را که باید در هر خط از یک سند جستجو شود و اقدامی که باید هنگام یافتن یک مطابق در یک سند انجام شود، تعریف می‌کند. دستورات Awk بیشتر برای اسکن و پردازش الگو استفاده می‌شود. AWK در واقع یک یا چند فایل را جستجو می‌کند تا ببیند آیا آن‌ها حاوی خطوطی هستند که با الگوهای مشخص شده مطابقت دارند یا خیر و سپس اقدامات مرتبط را انجام می‌دهد. Awk از نام توسعه‌دهندگان Aho، Weinberger و Kernighan به اختصار گرفته شده است. در بخش بعدی دوره آموزش برنامه نویسی AWK معرفی خواهد شد.

دوره آموزش برنامه نویسی awk

تصور کنید قصد تحلیل و پردازش یک فایل متنی را دارید. این فایل متنی می‌تواند چند ستون و چند هزار سطر داشته باشد. انجام عملیات‌های مختلف مانند عملیات‌های ریاضی، متنی، زمانی و بیتی همراه با بررسی شروط مختلف روی این حجم از اطلاعات و داده‌ها کار بسیار دشواری است.

زبان برنامه نویسی AWK یکی از برجسته‌ترین ابزارهای پردازش متن در GNU/ Linux محسوب می‌شود. این ابزار بسیار قدرتمند است و در عین حال از یک زبان برنامه‌نویسی ساده برای پردازش استفاده می‌کند. این زبان می‌تواند کارهای پیچیده پردازش متن را به وسیله چند خط کد ساده حل کند. این دوره آموزش برنامه نویسی AWK برای آموزش این زبان در مکتب خونه تهیه و تدوین شده است. در این دوره کوتاه بیشتر جنبه‌های مختلف AWK مورد پوشش قرار داده خواهد شد.

همچنین در این دوره حلقه‌های AWK با مثال‌های مناسب توضیح داده می‌شود. حلقه‌ها برای اجرای مجموعه‌ای از اقدامات به صورت تکراری استفاده می‌شوند. همان‌طور که می‌دانید اجرای حلقه تا زمانی که شرط حلقه برقرار باشد، ادامه خواهد داشت.

زبان برنامه نویسی AWK توابع متعدد زیادی را در خود جای داده است. این توابع همواره در دسترس برنامه‌نویسان قرار دارند. تعریف تابع یک کلید اصلی تابع، نام تابع، نام آرگومان‌ها و بدنه تابع را شامل می‌شود Arithmetic، String، Time، Bit manipulation و غیره از جمله توابعی هستند که در AWK تعریف شده‌اند. توابع بلوک‌های اساسی برنامه هستند. AWK حتی به شما اجازه می‌دهد که توابع خود را تعریف کنید. یک برنامه بزرگ را می‌توان به توابع تقسیم کرد. هر تابع را می‌توانید به صورت مستقل بنویسید و آزمایش کنید. در این صورت می‌توانید به طور مجدد از کدهای نوشته شده استفاده کنید.

داده‌ها را می‌توانید هم روی جریان خروجی استاندارد نمایش دهید و هم آن‌ها را به یک فایل هدایت کنید. تغییر مسیر در AWK دقیقاً مانند تغییر مسیر در دستورات Linux Shell (لینوکس شل) است؛ بنابراین اگر با اسکریپت نویسی پوسته آشنایی داشته باشید، به راحتی می‌توانید با آموزش برنامه نویسی AWK کار با این زبان محبوب را یاد بگیرید.

هدف از دوره آموزش برنامه نویسی AWK چیست؟

کارهای زیادی را می‌توان با AWK انجام داد. به عنوان مثال پس از یادگیری زبان برنامه نویسی AWK می‌توانید وظایف زیر را انجام دهید:

  •  پردازش متن
  •  گزارش‌های متنی قالب‌بندی شده
  •  انجام عملیات حسابی و ریاضی
  •  انجام عملیات رشته‌ای
  •  و بسیاری از موارد دیگر

در دوره آموزش زبان برنامه نویسی AWK می‌توانید در ابتدا با محیط آن آشنا شوید. در لابه‌لای آموزش سینتکس، متغیرها، عملگرها، آرایه‌ها، حلقه‌ها و توابع استفاده شده در AWK را فرا می‌گیرید. سرفصل‌های دوره آموزش AWK به صورت زیر است:

1. آموزش زبان برنامه‌نویسی آک، زبانی که به درد همه می‌خورد

2. آموزش برنامه‌نویسی به زبان آک (قسمت دوم)

دوره آموزش رایگان AWK مناسب چه کسانی است؟

دوره آموزش رایگان برنامه نویسی AWK برای توسعه‌دهندگان سیستم، مدیران سیستم یا هر شخصی که تمایل به یادگیری نحوه پردازش متن و استخراج داده‌ها در محیطی مانند یونیکس را دارد، مفید خواهد بود.

بعد از فراگیری دوره آموزش AWK جه مهارت‌هایی کسب خواهید کرد؟

با شرکت در دوره آموزش برنامه نویسی AWK دانشجویان مهارت‌های زیر را کسب خواهند کرد.

  • آشنایی کامل با زبان برنامه نویسی AWK
  • کار کردن با آرایه‌ها، توابع، حلقه‌ها، دستورات شرطی و غیره
  • انجام عملیات‌های مختلف مانند عملیات‌های ریاضی، متنی، زمانی و بیتی.

پیش‌نیاز آمزش زبان برنامه نویسی AWK چیست؟

برای شرکت در  آموزش زبان برنامه‌نویسی AWK بهتر است درک اولیه‌ای از سیستم‌عامل GNU/ linux و اسکریپت نویسی پوسته داشته باشید. اگر با تحلیل متن سروکار دارید و تا حدودی با سیستم‌عامل GNU/ linux آشنایی دارید، از دوره آموزش رایگان AWK می‌توانید نهایت استفاده را ببرید.

AWK چیست؟

awk نوعی زبان برنامه نویسی و مشخصات POSIX است که در آزمایشگاه AT&T Bell در سال 1977 ایجاد شد. نام آن از حروف اول طراحان آن گرفته شده است: Aho، Weinberger و Kernighan. awk دارای توابع تعریف شده توسط کاربر، جریان‌های ورودی متعدد، دسترسی به شبکه TCP/IP و مجموعه‌ای غنی از عبارات منظم است. اغلب برای پردازش فایل‌های متن خام، تفسیر داده‌هایی که پیدا می‌کند به‌عنوان رکوردها و فیلدهایی که باید توسط کاربر دست‌کاری شوند، استفاده می‌شود.

در ابتدایی‌ترین حالت، awk فایل‌ها را برای واحدی از متن (معمولاً خطوطی که با یک کاراکتر خاص خاتمه می‌یابند) جستجو می‌کند که حاوی الگوهای مشخص شده توسط کاربر است. هنگامی که یک خط با یکی از الگوها مطابقت دارد، awk مجموعه‌ای از اقدامات تعریف شده توسط کاربر را در آن خط انجام می‌دهد، سپس خطوط ورودی را تا پایان فایل‌های ورودی پردازش می‌کند.

انواع AWK

انواع AWK عبارت‌اند از:

  • AWK – AWK اصلی از آزمایشگاه AT & T
  • NAWK - نسخه جدیدتر و بهبودیافته AWK از آزمایشگاه AT & T
  • GAWK - این نسخه GNU AKW است. تمام توزیع‌های GNU/ Linux نسخه GAWK را ارسال می‌کنند. این نسخه با AWK و NAWK کاملاً سازگار است.

برای تبدیل شدن به برنامه‌نویس خبره AWK باید جریانات داخلی این زبان را بشناسید. AWK یک گردش کار بسیار ساده دارد؛ خواندن، اجرا کردن و تکرار. AWK یک خط از استریم ورودی را می‌خواند و آن را در حافظه ذخیره می‌کند. در این دوره آموزش برنامه نویسی AWK به شما آموزش می‌دهیم که چگونه انواع ورودی‌ها مانند پایپ یا فایل را به عنوان ورودی به این زبان بدهید.

تمام دستورات AWK به ترتیب در ورودی اعمال می‌شوند. به‌طور پیش‌فرض AWK دستورات را در هر خط اجرا می‌کند. در این دوره یاد می‌گیرید که چگونه با کمک الگوها، آن‌ها را محدود کنید. این روند تا زمانی که فایل به انتها برسد، تکرار می‌شود.

ساختار برنامه نویسی AWK

ساختار برنامه نویسی AWK از سه بلوک BEGIN، Body و END تشکیل می‌شود. در طول دوره آموزش زبان برنامه نویسی AWK با این بلوک‌ها و نحوه ساخت آن‌ها آشنا می‌شوید.

AWK در مدیریت عبارات با قاعده هم بسیار قدرتمند و کارآمد عمل می‌کند. بعضی از کارهای پیچیده را می‌توانید با استفاده از عبارات با قاعده ساده، به راحتی انجام دهید. هر متخصص خط فرمان از قدرت regular expression آگاه است. در این دوره می‌توانید با انجام مثال‌هایی به نحوه استفاده از این عبارات در AWK به خوبی فرا بگیرید.

AWK دارای آرایه‌های انجمنی است. یکی از بهترین چیزهایی که در مورد آرایه‌های AWK وجود دارد، این است که لازم نیست شاخص‌ها (اندیس) به ترتیب باشند. می‌توانید از رشته یا عدد هم به عنوان اندیس آرایه استفاده کنید. همچنین نیازی به اعلام اندازه آرایه از قبل نیست. چرا که آرایه‌ها می‌توانند در زمان اجرا گسترش یافته یا حتی کوچک‌تر شوند. آرایه‌ها عضو جدایی‌ناپذیر زبان‌های برنامه‌نویسی هستند؛ در این دوره آموزش AWK به بررسی آرایه‌ها و کار با آن‌ها هم می‌پردازیم.

مانند تمام زبان‌های برنامه‌نویسی، AWK عبارات شرطی را برای کنترل جریان برنامه ارائه می‌دهد. عبارات شرطی در تحلیل متن‌ها می‌توانند بسیار پر کاربرد باشند؛ در این دوره می‌توانید با جمله‌های شرطی هم بیشتر آشنا شوید.

با AWK چه کاری می‌توانیم انجام دهیم؟

عملیات قابل انجام با AWK به شرح موارد زیر است:

  • یک فایل را خط به خط اسکن می‌کند.
  • یک فایل را به چندین فیلد تقسیم می‌کند.
  • متن ورودی یا بخشی از یک فایل متنی را با هم مقایسه می‌کند.
  • اقدامات مختلفی را روی یک فایل انجام می‌دهد، مانند جستجوی متن مشخص شده و موارد دیگر.
  • خطوط خروجی را فرمت می‌کند.
  • عملیات حسابی و رشته‌ای را انجام می‌دهد.
  • شرایط و حلقه‌ها را در خروجی اعمال می‌کند.
  • این فایل‌ها و داده‌ها را در یک ساختار مشخص تبدیل می‌کند.
  • گزارش‌های قالب را تولید می‌کند.

در دوره آموزش برنامه نویسی awk با این عملیات آشنا خواهیم شد.

چرا از awk استفاده کنیم؟

awk ممکن است با وجود پایتون کمی قدیمی به نظر برسد ولی با این حال نیز awk مزایای خاص خود را دارد و می‌تواند هنوز هم ابزار بسیار مفیدی باشد. از بسیاری جهات، برنامه‌های نوشته شده در awk با برنامه‌های زبان‌های دیگر متفاوت هستند، زیرا awk مبتنی بر داده است؛ یعنی، شما توضیح می‌دهید که با چه داده‌هایی می‌خواهید کار کنید و سپس وقتی چنین داده‌هایی یافت می‌شوند، می‌خواهید چه کاری انجام دهند.

awk برای اهداف خاصی ساخته شده است، بنابراین چیزهای زیادی وجود دارد که فقط با awk می‌توان آن را پیاده‌سازی کرد. هم اکنون در حوزه‌های زیادی مانند یادگیری ماشین، داده کاوی، هوش مصنوعی، ریاضی، داده‌های حجیم، زیبا سازی متون و غیره از awk استفاده می‌کنند. همچنین کاربردهای AWK روزبه‌روز در حال افزایش است.

تفاوت sed و awk چیست؟

sed یک ابزار خط فرمان است که با استفاده از یک زبان برنامه نویسی ساده و فشرده متن را تجزیه و تبدیل می‌کند. awk یک ابزار خط فرمان به‌حساب می‌آید که برای پردازش متن طراحی شده است که امکان نوشتن برنامه‌های مؤثر در قالب عبارات را فراهم می‌کند.

تفاوت بین awk و gawk چیست؟

Awk یک مشخصات POSIX منبع باز است، بنابراین هر کسی می‌تواند (در تئوری) نسخه‌ای از دستور و زبان را پیاده‌سازی کند. در سیستم عامل لینوکس یا هر سیستمی که گنو awk را ارائه می‌کند، فرمان فراخوانی awk gawk است و با دستور عمومی awk پیوند دارد. همین امر در مورد سیستم‌هایی که nawk یا mawk یا هر نوع دیگری از پیاده‌سازی awk را ارائه می‌دهند صادق است. اکثر نسخه‌های awk عملکرد اصلی و توابع تحت‌اللفظی تعریف شده توسط مشخصات POSIX را پیاده‌سازی می‌کنند، اگرچه ممکن است ویژگی‌های جدیدی را داشته باشند که در سایرین وجود ندارد. اگر به فکر یادگیری awk هستید هم‌اکنون با ثبت‌نام در دوره آموزش awk اولین و مهم‌ترین قدم را در این راه بردارید.

اطلاعات بیشتر

امتیاز و نظرات کاربران

4.5

از مجموع 11 امتیاز

7 نظر

2 ماه پیش

بسیار بسیار سودمند و آموزنده و خفن و گنگ بود. گویش آموزگار بسیار شیوا و خوب بود و همه چیز به خوبی گفته شد. سپاس از کوشش و مهر شما

دانشجوی دوره

2 سال پیش

سلام ممنون از دوره خوبتون. کاشکی امکان قراردادن فایلهای درسی هم برای دانلود امکانپذیر بود (مثلا فایلی که جناب نایینی در ویدیوی دوم روش کار میکرد)

دانشجوی دوره

3 سال پیش

ممنون از استاد محترم درس. برایشان آرزوی سلامتی و برکت دارم. دوره فوق العاده ای بود

مهدی طریقی احمدپور

مهدی طریقی احمدپور

3 سال پیش

سلام. توضیحات و همه چیز عالیه. امیداورم سراغ bash script هم برید.

رامین کرد والش آبادی

رامین کرد والش آبادی

3 سال پیش

alii bod mamnoon

محمد مهدی اولیا

محمد مهدی اولیا

3 سال پیش

kheili khob bod... vaghan niaz dashtam be in dore.hich darki az awk nadashtam vali in dore kheili komakam kard . khaste nabashi refigh

محمد ساجدی

محمد ساجدی

نظرات بیشتر

دوره‌های پیشنهادی

درباره استاد

وحید نائینی
وحید نائینی
5 دوره
13,379 دانشجو

وحید نائینی فارغ‌التحصیل مهندسی مکانیک از دانشگاه صنعتی اصفهان و تربیت مدرس است. پروژه آکادمیک و دانشجویی وحید شبیه‌سازی شکست استخوان بوده، ولی از آخرین شغل مرتبط با رشته‌اش، یعنی تدریس در دانشگاه آزاد، ‌چند سالی گذشته است. ایشان کار خود را در برنامه‌نویسی با پردازش تصاویر شروع کرد و در حال حاضر برنامه نویس بک اند است و از سال 1394 سابقهٔ تدریس ۳۰ دوره برنامه‌نویسی پایتون را در مجتمع فنی دارد. ایشان مسلط به زبان‌های برنامه‌نویسی و ابزارهایی مثل C++، Python، Docker، SQL، Git و غیره است. نکته جالب توجه درباره وحید این است که او به زبان‌های غیر برنامه‌نویسی هم علاقه زیادی دارد و با زبان‌های روسی و اسپرانتو هم آشنایی دارد.

اطلاعات بیشتر

دیگر دوره‌های وحید نائینی

سوالات پرتکرار

آیا ممکن است که درسی ناقص ضبط شده باشد؟

ما همواره تلاش کرده­‌ایم که دروس را به طور کامل ضبط نماییم و در اختیار شما دوستان قرار دهیم. اما گاهی برخی ناهماهنگی ها سبب می شود که یک یا تعدادی از جلسات یک درس ضبط نشود. توضیح این گونه نواقص در توضیح درس­ ها آمده است.

اگر لینک دانلود یا پخش ویدئو مشکل داشت چه باید کرد؟

در صورتی که با هر گونه مشکلی رو به رو شدید می توانید از طریق صفحه ارتباط با ما به ما اطلاع دهید تا ما سریعا مشکل را پیگیری و برطرف نماییم.

آیا امکان دریافت فیلم های یک درس به صورت سی دی یا دی وی دی وجود دارد؟

در حال حاضر امکان ارسال دروس به صورت سی دی یا دی وی دی وجود ندارد.