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

سرور مجازی NVMe

روش استفاده از دستور awk در Bash

0 56
زمان لازم برای مطالعه: 3 دقیقه


هنگام کار در محیط خط فرمان، داشتن درک قوی از دستورات مختلف موجود برای مدیریت موثر فایل ها، دایرکتوری ها و سایر داده ها ضروری است. یکی از این دستورات دستور ‘awk’ است. awk یک ابزار قدرتمند است که استفاده می شود process و فایل های متنی را در محیط یونیکس/لینوکس دستکاری کنید. این مقاله توضیح می‌دهد که دستور «awk» چیست و راه‌های استفاده مؤثر از آن چیست.

فرمان ‘awk’ چیست؟

دستور ‘awk’ ابزاری قدرتمند برای دستکاری و پردازش فایل های متنی در محیط های یونیکس/لینوکس است. می توان از آن برای انجام کارهایی مانند تطبیق الگو، فیلتر کردن، مرتب سازی و دستکاری داده ها استفاده کرد. awk عمدتا استفاده می شود process و داده ها را به روشی ساختاریافته دستکاری کنید.

روش استفاده از دستور awk

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

مثال 1: شمارش تعداد خطوط در یک فایل

برای شمارش تعداد خطوط یک فایل، می توانید از دستور awk زیر استفاده کنید:

بیخیال “END{print NR}” <file-name.txt>

در اینجا، “NR” یک متغیر داخلی است که شامل تعداد رکوردها (خطوط) پردازش شده توسط awk است. کلمه کلیدی “END” به awk می گوید که این دستور را پس از پردازش تمام خطوط در فایل اجرا کند. در اینجا من یک فایل متنی فایل را برای اهداف تصویری ایجاد کرده‌ام و سپس از نحو بالا در یک اسکریپت پوسته استفاده کردم که به شرح زیر است:

#!/bin/bash
بیخیال “END{print NR}” testfile.txt

فایل متنی که من ایجاد کردم دارای دو خط است و وقتی از دستور awk استفاده می شود خروجی 2 نمایش داده می شود، می توانید فایل متنی را که ایجاد کردم در تصویر زیر مشاهده کنید:

پیشنهاد می‌کنیم بخوانید:  عملیات حسابی بش

روش استفاده از دستور awk در Bash

مثال 2: فیلتر کردن داده ها

awk می تواند برای فیلتر کردن داده ها استفاده شود روی معیارهای خاص و در اینجا نحوی است که باید برای چنین هدفی استفاده کرد:

بیخیال ‘!//’ <file-name.txt>

به عنوان مثال، می‌توانید از دستور زیر برای فیلتر کردن تمام خطوط یک فایل حاوی کلمه «Hello» استفاده کنید.

#!bin/bash
بیخیال ‘!/سلام/’ testfile.txt

در این مثال، “!” نماد جستجوی عبارت منظم را نفی می کند، بنابراین تمام خطوطی که حاوی کلمه “Hello” نیستند چاپ می شوند. من از همان فایل متنی مثال قبلی استفاده کرده‌ام، بنابراین خروجی اسکریپت بالا در اینجا آمده است:

روش استفاده از دستور awk در Bashروش استفاده از دستور awk در Bash

مثال 3: استخراج فیلدهای خاص

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

بیخیال “{print $}” <file-name.txt>

در اینجا برای مثال، من اولین فیلد همان فایل متنی را چاپ کرده ام و “$1” نشان دهنده اولین فیلد در هر خط از فایل است. دستور «print» به awk می‌گوید که فقط آن فیلد را چاپ کند.

#!/bin/bash
بیخیال “{print $1}” testfile.txt

در فایل متنی اولین ورودی خط اول “This” و اولین ورودی خط دوم “Hello” است، بنابراین خروجی کد داده شده در اینجا آمده است:

روش استفاده از دستور awk در Bashروش استفاده از دستور awk در Bash

نتیجه

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

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

زمان انتشار: 1402-12-28 23:20:03

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

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

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