از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
با استفاده از دستور “awk” برای چاپ آخرین ستون از یک فایل
سرفصلهای مطلب
گاهی اوقات شرایطی پیش می آید که نیازی به خواندن کامل فایل نداریم، فقط نیاز داریم بخشی از فایل نمایش داده شود. در این شرایط، ما سعی میکنیم راههای کارآمدی برای دریافت آنها بدون بررسی کل محتوای فایل پیدا کنیم. دستور “awk” یکی است.
دستور “AWK” یک ابزار خط فرمان است که در لینوکس برای انجام جستجوها با الگوهای مختلف و برای پردازش استفاده می شود. این دستوری است که به یک کدنویس اجازه میدهد تا خطوط کوچک اما کارآمد کد را به شکل عباراتی کدنویسی کند که الگوهای متنی را آغاز میکند که برای انجام جستجو در هر قسمت از یک سند استفاده میشود. بنابراین، آن نیز یک دستور بسیار مورد استفاده برای پردازش متن است.
با کمک دستور “awk”، یک برنامه نویس می تواند داده ها و تکه هایی از یک متن خاص را انتخاب کند روی الگوی ارائه شده به فرمان دستور AWK می تواند فایل ها را خط به خط اسکن و جستجو کند، هر خط ارسال شده به عنوان ورودی را در فیلدها توزیع و تقسیم کند، فیلدها را با خطوط ورودی مقایسه و مطابقت دهد و دستورالعمل های مشخص شده توسط برنامه نویس را انجام دهد. روی خطوط همسان دستورات AWK را می توان برای تولید گزارش در فرمت های خاص و برای تغییر داده های داخل فایل ها استفاده کرد.
نحو:
در زیر دستور دستور AWK آمده است:
در این دستور، از پارامتر “action” در نحو برای تعریف عملی که دستور ما قرار است انجام شود استفاده می شود. پس از آن، نام فایل خود را به عنوان پارامتر ارسال می کنیم روی که قرار است آن را عملیاتی کنیم.
مثال شماره 1:
در این مثال سعی می کنیم با استفاده از دستور awk ستون n یا آخرین ستون فایل را چاپ کنیم. اجازه دهید ابتدا یک فایل جدید ایجاد کنیم که حاوی برخی از داده های مربوط به کارمندان است. برای ایجاد یک فایل جدید، دستور زیر را اجرا می کنیم:
پس از اجرای دستور بالا، یک فایل جدید در فهرست اصلی ما ایجاد می کند. نیازی به ایجاد یک فایل در فهرست اصلی نیست و می توانید آن را در هر جایی از سیستم خود ایجاد کنید. حال بررسی می کنیم که آیا فایل ایجاد شده است یا خیر. برای آن، ما به سادگی فهرست خانه را بررسی می کنیم. همانطور که در قطعه زیر نشان داده شده است، ما یک فایل جدید با نام working.txt ایجاد کرده ایم.
اکنون، همانطور که در قطعه زیر نشان داده شده است، با استفاده از یک دفترچه یادداشت، مقداری محتوا به فایل اضافه می کنیم. ما داده های پنج کارمند را در آن اضافه کرده ایم که شامل نام، نام و حقوق کارمند است. داده های زیر نشان داده شده است که در فایل “employee.txt” ذخیره می شود.
مدیر Jhone 1 دلار42
ریک دستیار 5 دلار43
لیندا طراح 1 دلار48
مدیر الکس پروژه 3 دلار42
اکنون فایل با موفقیت با محتوا و دریافت آخرین ستون فایل با استفاده از دستور awk ساخته می شود. برای این کار دستور زیر را اجرا می کنیم:
در دستور بالا، عبارت print را به همراه کلمه کلیدی “$NF” ارسال کردیم که به این معنی است که دستور awk به کامپایلر دستور میدهد تا “$NF” را چاپ کند که فیلد n فایل را نشان میدهد. آخرین “employee.txt” نام فایلی است که آخرین ستون آن چاپ خواهد شد. با زدن کلید enter دستور را اجرا می کنیم روی که خروجی نمایش داده شده در زیر تولید می شود روی را terminal که در آن حقوق کارکنان نمایش داده می شود.
1 دلار42
5 دلار43
1 دلار48
3 دلار42
مثال شماره 2:
در این مثال، آخرین ستون فایل را می خوانیم اما این بار از روش دیگری استفاده می کنیم که بیشتر زمانی استفاده می شود که تعداد ستون ها توسط کاربر مشخص باشد. اکنون اجازه دهید ابتدا یک فایل جدید ایجاد کنیم که حاوی داده های پنج دانش آموز است. این شامل نام دانش آموزان، کلاس های آنها و نمرات آنها است.
هنگامی که دستور بالا را اجرا می کنیم، یک فایل جدید ایجاد می کند و آن را به طور خودکار در یک ویرایشگر متن باز می کند. اکنون داده های دانش آموزان را با فشردن کلیدهای Ctrl + x در فایل اضافه می کنیم. ما فایل را پس از افزودن محتوا به آن ذخیره می کنیم. در مورد ما، داده های پنج دانش آموز را به آن اضافه کردیم. با ذخیره فایل به سمت هدف اصلی خود یعنی چاپ آخرین ستون فایل حرکت خواهیم کرد. در زیر محتوای فایل “student.txt” آمده است.
jhone gradeC 154
ریک درجه A 124
درجه لیندا B 144
الکس درجه A 122
اکنون دستور awk را برای چاپ آخرین ستون فایل اجرا می کنیم. فرض کنید این بار ستون های فایل را می شناسیم و می خواهیم آخرین ستون آن را چاپ کنیم. برای این کار از دستور awk به همراه شماره ستونی که چاپ می شود استفاده می کنیم روی را terminal. همانطور که می دانیم فقط سه ستون در پرونده ما وجود دارد که نام دانش آموزان، کلاس های آنها و نمرات است. برای چاپ آخرین ستون، دستور زیر را اجرا می کنیم:
در این دستور، “$3” را به همراه دستور print که به معنای “awk” است، به کامپایلر دستور می دهد تا ستون سوم فایل به نام “student.txt” را چاپ کند. وقتی این دستور را اجرا می کنیم، خروجی زیر را چاپ می کند که در آن علائم دانش آموزان چاپ می شود. همچنین می توانیم خروجی را با قطعه فایلی که در بالا نمایش داده شده است مقایسه کنیم. فایل فقط شامل سه ستون و آخرین ستون فایل شامل نمرات دانش آموزان است. از این دستور می توان برای چاپ هر ستونی از فایل استفاده کرد. نه تنها برای چاپ آخرین ستون مشخص شده است. با تغییر علامت “$3” به “$2” میتوانیم ستون دوم را چاپ کنیم. پس از اجرای دستور بالا، خروجی زیر نمایش داده می شود.
154
124
144
122
نتیجه
ما یک دستور “awk” را مطالعه کرده ایم که به طور گسترده برای ضربه زدن مستقیم به محتوای فایل مورد نیاز استفاده می شود. سپس چندین مثال برای خواندن آخرین ستون مشخص شده از فایل ها با استفاده از دستور awk پیاده سازی کردیم. می توانید مثال های بیشتری را پیاده سازی کنید تا ایده بهتری در مورد روش استفاده از دستور awk داشته باشید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 08:40:03