برنامه نویسی

تسلط بر دستور awk در لینوکس


معرفی

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

مبانی AWK

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

awk 'pattern { action }' filename
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

چاپ ستون

یکی از رایج ترین موارد استفاده برای AWK استخراج ستون ها از یک فایل است. دستور زیر ستون های اول و دوم یک فایل را که با کاما از هم جدا شده اند چاپ می کند:

awk '{ print $1 "," $2 }' people.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تصویر 1

این $1 و $2 به ترتیب ستون اول و دوم را نشان می دهد. برای جداسازی ستون ها کاما اضافه می شود.

اظهارات مشروط

AWK همچنین از دستورات شرطی مانند if-else پشتیبانی می کند. دستور زیر خطوطی را از فایلی که حاوی کلمه “error” است چاپ می کند:

awk '/error/ { print }' people.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تصویر 2

الگو /error/ خطوط حاوی کلمه “خطا” را مشخص می کند. عمل { print } آن خطوط را چاپ می کند.

محاسبات

AWK می توان از آن برای انجام محاسبات روی داده های موجود در یک فایل استفاده کرد. دستور زیر مجموع مقادیر ستون سوم یک فایل را چاپ می کند:

awk '{ sum += $3 } END { print sum }' people.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تصویر 3

متغیر مجموع به صفر مقدار دهی اولیه می شود و سپس با مقدار ستون سوم برای هر خط افزایش می یابد. این END کلمه کلیدی مشخص می کند که عمل نهایی باید پس از پردازش تمام خطوط انجام شود.

علاوه بر ویژگی های اساسی از AWK، بسیاری از ویژگی های پیشرفته وجود دارد که می توان از آنها برای دستکاری داده ها به روش های قدرتمند استفاده کرد.

عبارات با قاعده

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

awk '/^error/ { print }' error.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تصویر 4

این ^ نماد شروع خط را نشان می دهد. الگو /^error/ خطوطی را مشخص می کند که با کلمه “خطا” شروع می شوند.

جداکننده های میدان

به صورت پیش فرض، AWK فرض می کند که فیلدهای یک فایل با دو نقطه از هم جدا شده اند. با این حال، می توان یک جداکننده فیلد متفاوت با استفاده از -F گزینه. دستور زیر اولین ستون یک فایل را که با دو نقطه از هم جدا شده است چاپ می کند:

awk -F ":" '{ print $1 }' number.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تصویر 5

این -F ":" گزینه جداکننده فیلد را روی دو نقطه قرار می دهد. این $1 نشان دهنده ستون اول است.

توابع تعریف شده توسط کاربر

AWK به کاربران اجازه می دهد تا عملکردهای خود را تعریف کنند، که می تواند برای انجام پردازش داده های سفارشی استفاده شود. دستور زیر تابعی به نام “double” را تعریف می کند که یک عدد را در 2 ضرب می کند:

awk 'function double(x) { return x*2 } { print double($1) }' number.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تصویر 6

این function double(x) استدلال می گیرد x و برمی گردد x ضرب در 2. The { print double($1) } action تابع double را در ستون اول هر خط اعمال می کند.

نتیجه

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

ممنون که خواندید 🧑‍💻

در ادامه با ما همراه باشید 🚀

✌️ و خروج

برای من یک قهوه بخر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا