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

سرور مجازی NVMe

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

0 12
زمان لازم برای مطالعه: 8 دقیقه


Regular Expression یا Regex دنباله ای از کاراکترهای خاص است که الگویی را برای یافتن نمونه های تطبیق الگوی خاص از یک فایل و دستکاری آنها تشکیل می دهند. عمدتاً برای جستجوی کاراکترهای خاص، کلمات، فیلتر کردن یا دستکاری متن در یک فایل استفاده می شود.

Regex تا حد زیادی در زبان های برنامه نویسی از جمله در لینوکس اسکریپت نویسی Bash استفاده می شود. در این راهنما، روش استفاده از regex در Bash، عبارات منظم اصلی و روش استفاده از موتورهای مختلف پردازش regex را توضیح خواهم داد.

Regex چیست؟

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

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

نسخه های Regex

نسخه های مختلفی از regex وجود دارد و ذکر این نکته ضروری است که همه دستورات پردازنده regex از تمام regex پشتیبانی نمی کنند.

  • بیان منظم پایه (BRE)
  • عبارت منظم توسعه یافته (ERE)
  • عبارت منظم سازگار پرل (PCRE)

BRE و ERE به صورت زیر طبقه بندی می شوند:

  • POSIX BRE/ERE
  • GNU BRE/ERE

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

POSIX BRE و POSIX ERE زیر مجموعه ای از GNU BRE و ERE و GNU BRE/ERE زیر مجموعه ای از PCRE است.

نحو Regex

ناهمسان command-line برنامه های کاربردی با عبارات منظم استفاده می شوند، مانند:

  • grep
  • sed
  • بیخیال

این دستورات موتورهای regex نیز نامیده می شوند که به ترجمه عبارات منظم پیچیده کمک می کنند و خروجی می دهند.

دستور Regex با grep

grep [options] ‘الگو’ [string/filename]

Regex Syntax با sed

sed [options] ‘/الگو/’ [string/filename]

دستور Regex با awk

بیخیال [options] ‘/الگو/’ [string/filename]

اجزای دستور Regex

شش جزء اصلی نحو عبارت منظم وجود دارد:

  • شخصیت ها
  • متا شخصیت ها
  • کمیت کننده ها
  • کلاس های شخصیت
  • گروه بندی
  • نگاه ها

شخصیت ها: این مولفه ها با استفاده از هر کاراکتر منفرد یا چند کاراکتر برای جستجوی الگوهای دقیق در رشته یا فایل، الگوها را تشکیل می دهند. به عنوان مثال، کاراکتر H برای H در فایل جستجو می کند، به طور مشابه، حروف Linux دقیقا کلمه لینوکس را در فایل جستجو می کند. با این حال، پرچم -i را می‌توان برای بی‌حساس کردن جستجو به حروف بزرگ و کوچک استفاده کرد.

متا شخصیت ها: این مولفه ها شامل کاراکترهای خاص هستند و عملکرد خاصی دارند. به عنوان مثال، متاکاراکتر نقطه برای یافتن کاراکتر استفاده می شود، در حالی که ^ با شروع خط مطابقت دارد در حالی که $ با انتهای خط مطابقت دارد. یکی دیگر از لوله های متاکاراکتر a|b برای تطبیق a و b در فایل استفاده می شود.

کمیت کننده ها: این مولفه ها برای یافتن اینکه یک الگوی خاص چند بار باید تکرار شود استفاده می شود. مثلا علامت سوال؟ کاراکتر قبلی را فقط صفر یا یک بار تکرار می کند روی ستاره دیگر کاراکتر قبلی را صفر یا چند بار پیدا می کند.

کلاس های شخصیت: گروه کاراکترهای محصور شده در پرانتز ([]) به عنوان اجزای کلاس کاراکتر شناخته می شوند. مثلا، [0-9] اعداد از 0 تا 9 را به طور مشابه نشان می دهد [A-Z] تمام حروف الفبای A تا Z را با حروف بزرگ نشان می دهد.

گروه بندی: این جزء به گروه بندی الگو در براکت های گرد کمک می کند (). به ویژه یافتن توالی های تکرار شونده مانند شماره تلفن یا آدرس ایمیل مفید است.

نگاه ها: این مولفه برای ایجاد یک نگاه مثبت و منفی به اطراف یک الگوی قبل یا بعد از الگوی دیگری استفاده می شود. مثلا، a(?=b) به دنبال همه خواهد بود آ‘s اگر قبلا بیایند ب.

16 مثال از استفاده از Regex در لینوکس

مثال‌های زیر استفاده از متاکاراکترها، کمی‌کننده‌ها، گروه‌ها و برخی الگوهای منحصربه‌فرد را پوشش می‌دهند.

پیشنهاد می‌کنیم بخوانید:  استفاده از فرمان Exec در اسکریپت های شل

مثال 1: استفاده از عبارت نقطه (.).

نقطه متا کاراکتر اصلی عبارت منظم است که برای مطابقت با یک کاراکتر استفاده می شود. مثلا:

استفاده از grep:

grep “U.untu” mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed:

sed -n ‘/U.untu/p’ mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk:

بیخیال ‘/U.untu/’ mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

مثال 2: استفاده از عبارت Caret (^).

گاری ^ متاکاراکتر برای یافتن تمام خطوطی که از الگوی داده شده شروع می شوند استفاده می شود. مثلا:

استفاده از grep:

grep ‘^K’ mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed:

sed -n ‘/^K/p’ mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk:

بیخیال ‘/^K/’ mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

دستورات بالا تمام ورودی های فایل را از ابتدا چاپ می کنند ک.

مثال 3: استفاده از بیان دلار ($).

این متا کاراکتر برای یافتن تمام انتهای رشته با کاراکتر خاص استفاده می شود. مثلا:

استفاده از grep:

grep ‘u$’ mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed:

sed -n ‘/u$/p’ mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk:

بیخیال ‘/u$/’ mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

دستورات بالا تمام رشته های موجود در فایل را که به آن ختم می شود را می دهد تو.

مثال 4: استفاده از ستاره

اصطلاح

ستاره * کمیت با وقوع نویسه های قبلی در رشته صفر یا بیشتر برابر است. معادل {0,} است. مثلا:

استفاده از grep: grep ‘tu*’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed: sed -n ‘/tu*/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال ‘/tu*/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

مثال 5: استفاده از عبارت علامت سوال (؟).

کمیت کننده علامت سوال (؟) برای جستجوی اینکه آیا کاراکتر قبلی صفر یا یک بار اتفاق می افتد استفاده می شود. به عنوان یک واجد شرایط اختیاری عمل می کند.

استفاده از grep: grep -ای “Ub؟”

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

-E در دستور بالا برای regex توسعه یافته است.

استفاده از sed: sed -nE ‘/Ub?/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

-E در دستور بالا برای regex توسعه یافته است.

استفاده از awk: بیخیال ‘/Ub/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

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

زمان.

مثال 6: استفاده از عبارت Backslash (\).

این بک اسلش \ متاکاراکتر برای نشان دادن کاراکتر خاص استفاده می شود. به عنوان مثال، ستاره * خود یک کاراکتر خاص برای استفاده از ستاره به معنای واقعی کلمه است که ما از بک اسلش استفاده خواهیم کرد. بیایید تمام توزیع های لینوکس را در فایل پیدا کنیم mytextfile.txt

با فاصله در نام آنها.

استفاده از grep: grep ‘\s’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed: sed -n ‘/\s/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال ‘/\s/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

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

مثال 7: ایجاد گروهی از الگوها با استفاده از پرانتزهای گرد ()

پرانتزهای گرد () برای مطابقت با گروه عبارات داخل آنها استفاده می شود. بیایید با یک مثال آن را درک کنیم:

استفاده از grep: grep -ای “(untu)”

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed: sed -nE ‘/(untu)/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال ‘/(untu)/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

در دستورات بالا، موتور در حال گرفتن مدخل هایی با تطابق با گروه است(untu) . این گروه همچنین می تواند با الگوی دیگری به دنبال آن استفاده شود. به عنوان مثال، اگر ما جایگزین (untu) گروه با (un) u

نتیجه یکسان خواهد بود.

مثال 8: ایجاد الگوهای محدوده با استفاده از پرانتزهای مجعد {} عبارت

بریس های مجعد {} کمیت کننده های تکرار هستند. شما می توانید آنها را به 3 روش مختلف استفاده کنید: {ایکس}:

x تعداد دفعات ظاهر شدن {x,y} یا {min, max}:

تعداد دفعات x ظاهر می شود اما نه بیشتر از y {ایکس،}:

x تعداد بار و بیشتر ظاهر می شود

استفاده از grep: grep -ایl\{2 }

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed: sed -nE ‘/l{2}/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال ‘/l{2}/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

دستور بالا ورودی هایی را پیدا می کند که حاوی کاراکتر هستند لدو بار مانند بی llو اسکیll

.

مثال 9: استفاده از \d برای یافتن اعداد

عبارت \d برای یافتن رشته با اعداد در یک رشته یا فایل استفاده می شود. مثلا:

استفاده از grep: grep ‘\d’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

پ نشان می دهد که یک regex سازگار با Perl است، برای جزئیات بیشتر بخوانیداینجا

. در sed و awk، \d نمی توان از آن استفاده کرد زیرا sed POSIX regex است و نه پرلPCRE بنابراین، معادل \d [0-9] در sed و awk است [[:digit:]یا]

.

استفاده از sed: sed -n[0-9]’/ /پ’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

یا: sed -n[[:digit:]’/ ]/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال[0-9]’/ /’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

یا: بیخیال -n[[:digit:]’/ ]/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

مثال 10: استفاده از Logical OR Operator |

| بیان منظم به همان روشی کار می کند که گیت منطقی OR کار می کند. به عنوان مثال، اگر از a|o استفاده کنیم، این الگو تمام کلمات حاوی یک کاراکتر یا کاراکتر o را پیدا می کند.

استفاده از grep: grep -ای ‘k|a’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed: sed -nE ‘/k|a/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال ‘/k|a/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

مثال 11: یافتن تمام کلمات با تعداد مشخصی از کاراکترها

برای یافتن تمام کلمات با تعداد کاراکتر مشخص می توانیم از نقطه (.) استفاده کنیم. متاکاراکتر نقطه برای یافتن یک کاراکتر استفاده می شود اما می توان از آن برای جستجوی چندین کاراکتر نیز استفاده کرد. برای پیدا کردن تمام خطوط با چهار کاراکتر، از:

استفاده از grep: grep ‘^….$’

mytextfile.txt

پیشنهاد می‌کنیم بخوانید:  روش کپی و چسباندن با کلیپ بورد در Tmux

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed: sed -n ‘/^….$/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال ‘/^….$/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

مثال 12: یافتن آدرس IP از یک فایل آدرس IP یکی از موارد کلیدی است که می خواهید با استفاده از regex از یک فایل استخراج کنید. از آنجایی که یک آدرس IP حاوی نقاط است، یافتن آن با استفاده از regex یک عملیات ساده نیست: ما باید با استفاده از اسلش از نقطه (.) فرار کنیم. بیایید آدرس های IP را از آن استخراج کنیم /etc/hosts

فایل.

استفاده از grep: grep -ای[0-9]'[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\. {1,3}/و غیره/

میزبان ها

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

یا: grep -ای[[:digit:]'[[:digit:]]{1،3}\.[[:digit:]]{1،3}\.[[:digit:]]{1،3}\. ]{1,3}’/و غیره/

میزبان ها

استفاده از sed: sed -nE[0-9]’/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\. {1,3}/p’/و غیره/

میزبان ها

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال[0-9]’/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\. {1,3}/’/و غیره/

میزبان ها

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

مثال 13: یافتن اعداد اعشاری

عدد اعشاری، عدد ترکیبی از یک عدد کامل و یک جزء کسری است که بعد از نقطه (.) آمده است. برای دریافت عدد اعشاری از یک فایل با استفاده از regex، دستور زیر را ببینید:

استفاده از grep: grep ‘^\d*\.\d+$’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

را \d [[:digit:]برابر است با ] [0-9] و

اما grep از PCRE regex پشتیبانی می کند تا بتوانیم آن را با پرچم -P استفاده کنیم.

استفاده از sed: sed -nE[[:digit:]’/[[:digit:]]*\. ]+$/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال[0-9]’/[0-9]*\. +$/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

[[:digit:]می توانید جایگزین کنید ] [0-9] با

در دستورات بالا

مثال 14: یافتن زمان در قالب HH:MM 12-Hr

Regex همچنین می تواند برای یافتن زمان در یک فایل استفاده شود، بیایید نگاهی به روش استخراج زمان از یک فایل با استفاده از دستورات grep، sed و awk بیندازیم:

استفاده از grep: grep -ای[1-9]’^(0[0-2]|1[0-5][0-9]): $’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed: sed -nE[1-9]’/^(0[0-2]|1[0-5][0-9]): $/p’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال[1-9]’/^(0[0-2]|1[0-5][0-9]): $/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

مثال 15: یافتن تاریخ در قالب YYYY-MM-DD

برای استخراج زمان از یک فایل، از regex زیر با grep استفاده می کنیم:

استفاده از grep: grep -پ[12]'([1-9]\d{3}:(0[0-2]|1[1-9]):(0[12]|[01]\d|3 ))’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از sed: sed -nE[12][[:digit:]’/([1-9]]{3}-(0[0-2]|1[1-9])-(0[12][[:digit:]|[01]]| 3 ))/پ’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

استفاده از awk: بیخیال[12][[:digit:]’/([1-9]]{3}-(0[0-2]|1[1-9])-(0[12][[:digit:]|[01]]| 3 ))/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

مثال 16: یافتن و جایگزینی الگوها

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

استفاده از sed:

نحو: sed -من[pattern]’s/[replacement]/ [filename]

/’

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

فایل متنی اصلی این است:

دستور را اجرا کنید: sed -من ‘s/KaOS/Peepin/’

mytextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

در دستور بالا -من terminal برای اصلاح فایل اصلی استفاده می شود، بدون این پرچم فایل فقط نتیجه را در فایل چاپ می کند

به جای تغییر فایل

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

فایل را برای تایید بررسی کنید: جستجو را می توان با استفاده از آن بیشتر افزایش داد g در پایان عبارت؛ را g

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

استفاده از awk:

نحو: بیخیال[pattern]'{زیر([replacement]/ [filename] ) چاپ}’ [new_filename]

>

دستور را اجرا کنید: بیخیال ‘{sub(Peepin/”KaOS”); چاپ}’ mytextfile.txt >

newtextfile.txt

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

برای تایید فایل جدید را بررسی کنید:

Peepin اکنون در فایل جدید به KaOS بازگشته است. همچنین با استفاده از آن می توان آن را تقویت کرد gsub در محل زیر

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

بدون تغییر فایل اصلی برای ذخیره نتیجه از عملگر redirection استفاده کنید و نام فایل را وارد کنید.

ورق تقلب Regex

عبارات منظم بسیاری از متاکاراکترها و کمی سازها را برای ایجاد الگوهای پیچیده برای بهبود جستجو ارائه می دهند. بیایید قوانین regex رایج را فهرست کنیم.

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

کلاس های شخصیت Regex

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

کمیت و جایگزینی

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

لنگرها

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

شخصیت های فرار

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

گروه ها و نگاه ها

نتیجه

Regex دنباله ای از کاراکترها است که برای ایجاد یک الگو استفاده می شود که به جستجوی برخی اطلاعات از یک فایل و پردازش آن کمک می کند. موتورهای regex مختلفی در لینوکس وجود دارد، مانند grep، sed و awk. این راهنما عبارات منظم اولیه تا پیشرفته را با استفاده از هر سه دستور لینوکس پوشش می دهد. توجه به این نکته ضروری است که همه موتورهای regex لینوکس از تمام طعم‌های regex پشتیبانی نمی‌کنند، به عنوان مثال، sed و awk از PCRE پشتیبانی نمی‌کنند، در حالی که همه موتورها از BRE، ERE و PCRE پشتیبانی می‌کنند.

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk

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

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

روش کار با رشته ها در Bash
Linux Hint LLC، editor@linuzhint.com
1309 S Mary Ave Suite 210, Sunnyvale, CA 94087

16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awkسیاست حفظ حریم خصوصی و شرایط استفاده

.appendChild(e),p=e.querySelector(‘.play’),p.onclick=lazyLoadYoutubeIframe});

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

زمان انتشار: 1402-12-28 16:24:03

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

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

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