وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

با استفاده از دستور “awk” برای چاپ آخرین ستون از یک فایل

0 5
زمان لازم برای مطالعه: 4 دقیقه


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

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

با کمک دستور “awk”، یک برنامه نویس می تواند داده ها و تکه هایی از یک متن خاص را انتخاب کند روی الگوی ارائه شده به فرمان دستور AWK می تواند فایل ها را خط به خط اسکن و جستجو کند، هر خط ارسال شده به عنوان ورودی را در فیلدها توزیع و تقسیم کند، فیلدها را با خطوط ورودی مقایسه و مطابقت دهد و دستورالعمل های مشخص شده توسط برنامه نویس را انجام دهد. روی خطوط همسان دستورات AWK را می توان برای تولید گزارش در فرمت های خاص و برای تغییر داده های داخل فایل ها استفاده کرد.

نحو:

در زیر دستور دستور AWK آمده است:

بیخیال ‘{عمل}’ your_file_name.txt

در این دستور، از پارامتر “action” در نحو برای تعریف عملی که دستور ما قرار است انجام شود استفاده می شود. پس از آن، نام فایل خود را به عنوان پارامتر ارسال می کنیم روی که قرار است آن را عملیاتی کنیم.

مثال شماره 1:

در این مثال سعی می کنیم با استفاده از دستور awk ستون n یا آخرین ستون فایل را چاپ کنیم. اجازه دهید ابتدا یک فایل جدید ایجاد کنیم که حاوی برخی از داده های مربوط به کارمندان است. برای ایجاد یک فایل جدید، دستور زیر را اجرا می کنیم:

linux@linux-VirtualBox:~$ دست زدن به staff.txt

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

پیشنهاد می‌کنیم بخوانید:  پشت نام Basename – Bash

با استفاده از دستور "awk" برای چاپ آخرین ستون از یک فایل

اکنون، همانطور که در قطعه زیر نشان داده شده است، با استفاده از یک دفترچه یادداشت، مقداری محتوا به فایل اضافه می کنیم. ما داده های پنج کارمند را در آن اضافه کرده ایم که شامل نام، نام و حقوق کارمند است. داده های زیر نشان داده شده است که در فایل “employee.txt” ذخیره می شود.

حقوق تعیین نام

مدیر Jhone 1 دلار42

ریک دستیار 5 دلار43

لیندا طراح 1 دلار48

مدیر الکس پروژه 3 دلار42

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

linux@linux-VirtualBox:~$ بیخیال{چاپ $NF}‘ staff.txt

در دستور بالا، عبارت print را به همراه کلمه کلیدی “$NF” ارسال کردیم که به این معنی است که دستور awk به کامپایلر دستور می‌دهد تا “$NF” را چاپ کند که فیلد n فایل را نشان می‌دهد. آخرین “employee.txt” نام فایلی است که آخرین ستون آن چاپ خواهد شد. با زدن کلید enter دستور را اجرا می کنیم روی که خروجی نمایش داده شده در زیر تولید می شود روی را terminal که در آن حقوق کارکنان نمایش داده می شود.

حقوق

1 دلار42

5 دلار43

1 دلار48

3 دلار42

مثال شماره 2:

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

linux@linux-VirtualBox:~$ نانو student.txt

هنگامی که دستور بالا را اجرا می کنیم، یک فایل جدید ایجاد می کند و آن را به طور خودکار در یک ویرایشگر متن باز می کند. اکنون داده های دانش آموزان را با فشردن کلیدهای Ctrl + x در فایل اضافه می کنیم. ما فایل را پس از افزودن محتوا به آن ذخیره می کنیم. در مورد ما، داده های پنج دانش آموز را به آن اضافه کردیم. با ذخیره فایل به سمت هدف اصلی خود یعنی چاپ آخرین ستون فایل حرکت خواهیم کرد. در زیر محتوای فایل “student.txt” آمده است.

علائم کلاس نام

پیشنهاد می‌کنیم بخوانید:  روش دریافت آرگومان با پرچم ها در Bash

jhone gradeC 154

ریک درجه A 124

درجه لیندا B 144

الکس درجه A 122

اکنون دستور awk را برای چاپ آخرین ستون فایل اجرا می کنیم. فرض کنید این بار ستون های فایل را می شناسیم و می خواهیم آخرین ستون آن را چاپ کنیم. برای این کار از دستور awk به همراه شماره ستونی که چاپ می شود استفاده می کنیم روی را terminal. همانطور که می دانیم فقط سه ستون در پرونده ما وجود دارد که نام دانش آموزان، کلاس های آنها و نمرات است. برای چاپ آخرین ستون، دستور زیر را اجرا می کنیم:

linux@linux-VirtualBox:~$ بیخیال{چاپ 3 دلار}‘ student.txt

در این دستور، “$3” را به همراه دستور print که به معنای “awk” است، به کامپایلر دستور می دهد تا ستون سوم فایل به نام “student.txt” را چاپ کند. وقتی این دستور را اجرا می کنیم، خروجی زیر را چاپ می کند که در آن علائم دانش آموزان چاپ می شود. همچنین می توانیم خروجی را با قطعه فایلی که در بالا نمایش داده شده است مقایسه کنیم. فایل فقط شامل سه ستون و آخرین ستون فایل شامل نمرات دانش آموزان است. از این دستور می توان برای چاپ هر ستونی از فایل استفاده کرد. نه تنها برای چاپ آخرین ستون مشخص شده است. با تغییر علامت “$3” به “$2” می‌توانیم ستون دوم را چاپ کنیم. پس از اجرای دستور بالا، خروجی زیر نمایش داده می شود.

علامت گذاری می کند

154

124

144

122

نتیجه

ما یک دستور “awk” را مطالعه کرده ایم که به طور گسترده برای ضربه زدن مستقیم به محتوای فایل مورد نیاز استفاده می شود. سپس چندین مثال برای خواندن آخرین ستون مشخص شده از فایل ها با استفاده از دستور awk پیاده سازی کردیم. می توانید مثال های بیشتری را پیاده سازی کنید تا ایده بهتری در مورد روش استفاده از دستور awk داشته باشید.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-29 08:40:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید