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

معرفی
سلام! به عنوان یک کاربر لینوکس، ممکن است در مورد قدرتمندها شنیده باشید AWK
فرمان، اما ممکن است به طور کامل با قابلیت های آن آشنا نباشید. AWK
یک ابزار پردازش متن است که می تواند به شما در دستکاری داده ها از طرق مختلف کمک کند. در این پست وبلاگ، بیایید عمیقاً به آن بپردازیم AWK
دستور دهید، ویژگیهای آن را بررسی کنید، موارد استفاده و چند نکته برای کمک به شما در تسلط بر آن.
مبانی AWK
AWK
یک زبان برنامه نویسی خط گرا است که می تواند برای جستجو و دستکاری فایل های متنی استفاده شود. این با انجام اقدامات بر روی هر خط از یک فایل، بر اساس الگوهای مشخص شده در دستور عمل می کند. نحو اساسی از AWK
دستور به شرح زیر است:
awk 'pattern { action }' filename
الگو می تواند یک عبارت منظم یا یک رشته باشد و خطوطی را که عمل باید روی آنها اعمال شود را مشخص می کند. عمل می تواند هر گونه معتبر باشد AWK
فرمان و در پرانتزهای {} محصور شده است. نام فایل نام فایلی است که باید پردازش شود.
چاپ ستون
یکی از رایج ترین موارد استفاده برای AWK
استخراج ستون ها از یک فایل است. دستور زیر ستون های اول و دوم یک فایل را که با کاما از هم جدا شده اند چاپ می کند:
awk '{ print $1 "," $2 }' people.txt
این $1
و $2
به ترتیب ستون اول و دوم را نشان می دهد. برای جداسازی ستون ها کاما اضافه می شود.
اظهارات مشروط
AWK
همچنین از دستورات شرطی مانند if-else پشتیبانی می کند. دستور زیر خطوطی را از فایلی که حاوی کلمه “error” است چاپ می کند:
awk '/error/ { print }' people.txt
الگو /error/
خطوط حاوی کلمه “خطا” را مشخص می کند. عمل { print }
آن خطوط را چاپ می کند.
محاسبات
AWK
می توان از آن برای انجام محاسبات روی داده های موجود در یک فایل استفاده کرد. دستور زیر مجموع مقادیر ستون سوم یک فایل را چاپ می کند:
awk '{ sum += $3 } END { print sum }' people.txt
متغیر مجموع به صفر مقدار دهی اولیه می شود و سپس با مقدار ستون سوم برای هر خط افزایش می یابد. این END
کلمه کلیدی مشخص می کند که عمل نهایی باید پس از پردازش تمام خطوط انجام شود.
علاوه بر ویژگی های اساسی از AWK
، بسیاری از ویژگی های پیشرفته وجود دارد که می توان از آنها برای دستکاری داده ها به روش های قدرتمند استفاده کرد.
عبارات با قاعده
AWK
از عبارات منظم پشتیبانی می کند که می توان از آنها برای جستجوی الگوها در متن استفاده کرد. دستور زیر خطوطی را از فایلی که با کلمه “error” شروع می شود چاپ می کند:
awk '/^error/ { print }' error.txt
این ^
نماد شروع خط را نشان می دهد. الگو /^error/
خطوطی را مشخص می کند که با کلمه “خطا” شروع می شوند.
جداکننده های میدان
به صورت پیش فرض، AWK
فرض می کند که فیلدهای یک فایل با دو نقطه از هم جدا شده اند. با این حال، می توان یک جداکننده فیلد متفاوت با استفاده از -F
گزینه. دستور زیر اولین ستون یک فایل را که با دو نقطه از هم جدا شده است چاپ می کند:
awk -F ":" '{ print $1 }' number.txt
این -F
":"
گزینه جداکننده فیلد را روی دو نقطه قرار می دهد. این $1
نشان دهنده ستون اول است.
توابع تعریف شده توسط کاربر
AWK
به کاربران اجازه می دهد تا عملکردهای خود را تعریف کنند، که می تواند برای انجام پردازش داده های سفارشی استفاده شود. دستور زیر تابعی به نام “double” را تعریف می کند که یک عدد را در 2 ضرب می کند:
awk 'function double(x) { return x*2 } { print double($1) }' number.txt
این function double(x)
استدلال می گیرد x
و برمی گردد x
ضرب در 2. The { print double($1) }
action تابع double را در ستون اول هر خط اعمال می کند.
نتیجه
در این پست وبلاگ به بررسی این موضوع پرداخته ایم AWK
دستور در لینوکس، از جمله نحو اصلی آن، موارد استفاده رایج، و ویژگی های پیشرفته. با این دانش می توانید استفاده کنید AWK
برای دستکاری داده ها به روش های مختلف فراموش نکنید که الگوها و اقدامات مختلف را آزمایش کنید تا به طور کامل از قدرت استفاده کنید AWK
. موفق باشید!
ممنون که خواندید 🧑💻
در ادامه با ما همراه باشید 🚀
✌️ و خروج