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

سرور مجازی NVMe

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

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


یک عبارت منظم (regex) برای یافتن یک دنباله معین از کاراکترها در یک فایل استفاده می شود. برای تعریف الگو می توان از نمادهایی مانند حروف، ارقام و کاراکترهای خاص استفاده کرد. کارهای مختلف را می توان به راحتی با استفاده از الگوهای regex تکمیل کرد. در این آموزش، روش استفاده از الگوهای regex را با دستور awk به شما نشان خواهیم داد.

کاراکترهای اساسی مورد استفاده در الگوها

بسیاری از کاراکترها را می توان برای تعریف یک الگوی regex استفاده کرد. نویسه هایی که بیشتر برای تعریف الگوهای regex استفاده می شوند در زیر تعریف شده اند.

شخصیت شرح
. مطابقت دادن هر کاراکتری بدون خط جدید (\n)
\ نقل قول یک متا کاراکتر جدید
^ ابتدای یک خط را مطابقت دهید
$ انتهای یک خط را مطابقت دهید
| جایگزین تعریف کنید
() یک گروه را تعریف کنید
[] یک کلاس کاراکتر تعریف کنید
\w با هر کلمه ای مطابقت دهید
\s با هر کاراکتر فضای سفید مطابقت دهید
\d با هر رقمی مطابقت دهید
\b هر مرز کلمه را مطابقت دهید

یک فایل ایجاد کنید

برای دنبال کردن این آموزش، یک فایل متنی با نام ایجاد کنید products.txt. فایل باید دارای چهار فیلد باشد: شناسه، نام، نوع و قیمت.

شناسه نام نوع قیمت

پیشنهاد می‌کنیم بخوانید:  روش تولید رشته تصادفی در Bash

مانیتور 15 اینچی p1001 100 دلار

موس p1002 A4tech 10 دلار

پرینتر سامسونگ p1003 50 دلار

p1004 اسکنر HP 60 دلار

p1005 ماوس لاجیتک 15 دلار

مثال 1: با استفاده از کلاس کاراکتر یک الگوی regex تعریف کنید

دستور awk زیر عبارت و را جستجو می کند print خطوط حاوی کاراکتر ‘n’ به دنبال کاراکترهای ‘er’.

$ گربه products.txt

$ بیخیال ‘/[n][er]/ {print $0} products.txt

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

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

مثال 2: با استفاده از نماد ‘^’ یک الگوی regex تعریف کنید

دستور awk زیر عبارت و را جستجو می کند print خطوطی که با کاراکتر ‘p’ شروع می شوند و شامل عدد 3 می شوند.

$ گربه products.txt

$ بیخیال ‘/^p.*3/ {print $0} products.txt

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

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

مثال 3: با استفاده از تابع gsub یک الگوی regex تعریف کنید

را gsub () تابع برای جستجوی سراسری و جایگزینی متن استفاده می شود. دستور «awk» زیر کلمه «اسکنر» را جستجو می کند و قبل از چاپ نتیجه با کلمه «روتر» جایگزین می شود.

$ گربه products.txt

$ بیخیال ‘gsub(/اسکنر/، “روتر”)” products.txt

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

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

مثال 4: یک الگوی regex را با “*” تعریف کنید

دستور awk زیر عبارت و را جستجو می کند print هر رشته ای که با ‘Mo’ شروع می شود و هر کاراکتر بعدی را شامل می شود.

$ گربه products.txt

$ بیخیال ‘/Mo*/ {print $0} products.txt

پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. سه خط با الگو مطابقت دارد: دو خط حاوی کلمه “موشو یک خط حاوی کلمه استنظارت کنید‘.

پیشنهاد می‌کنیم بخوانید:  ریاضی نقطه شناور در Bash

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

مثال 5: با استفاده از نماد ‘$’ یک الگوی regex تعریف کنید

دستور awk زیر عبارت و را جستجو می کند print خطوطی در فایل که به عدد 5 ختم می شود.

$ گربه products.txt

$ بیخیال ‘/5$/ {print $0} products.txt

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

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

مثال 6: یک الگوی regex را با استفاده از ‘^’ و ‘|’ تعریف کنید. نمادها

^نماد ” شروع یک خط را نشان می دهد و “|نماد ‘ یک عبارت OR منطقی را نشان می دهد. دستور awk زیر عبارت و را جستجو می کند print خطوطی که با کاراکتر شروع می شوندپ“و حاوی یکی”اسکنر‘ یا ‘موش‘.

$ گربه products.txt

$ بیخیال ‘/^p.* (اسکنر|موس)/’ products.txt

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

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

مثال 7: با استفاده از نماد ‘+’ یک الگوی regex تعریف کنید

+عملگر ‘ برای یافتن حداقل یک مورد استفاده می شود. دستور awk زیر عبارت و را جستجو می کند print خطوطی که حاوی کاراکتر هستندn‘ حد اقل یک بار.

$ گربه products.txt

$ بیخیال ‘/n+/{print}’ products.txt

پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. اینجا شخصیت “n‘ حاوی حداقل یک بار در خطوطی که حاوی کلمات هستند رخ می دهد مانیتور، چاپگر و اسکنر.

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

مثال 8: با استفاده از تابع gsub () یک الگوی regex تعریف کنید

دستور «awk» زیر به صورت جهانی کلمه «» را جستجو می کند.چاپگر“و با کلمه” جایگزین کنیدنظارت کنید‘ با استفاده از تابع gsub()..

$ گربه products.txt

$ بیخیال ‘gsub(/Printer/, “Monitor”) { print$0} products.txt

پس از اجرای دستورات فوق خروجی زیر تولید خواهد شد. خط چهارم فایل حاوی کلمه “چاپگر‘دوبار و در خروجی’چاپگر“با کلمه” جایگزین شده استنظارت کنید‘.

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

نتیجه

بسیاری از نمادها و توابع را می توان برای تعریف الگوهای regex برای جستجوی مختلف و جایگزینی وظایف استفاده کرد. برخی از نمادها که معمولاً در الگوهای regex استفاده می شوند در این آموزش با دستور ‘awk’ اعمال می شوند.

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

زمان انتشار: 1402-12-31 06:55:05

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

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

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