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

سرور مجازی NVMe

روش استفاده از دستور بازگشتی Grep برای جستجو در فهرست

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


“Grep” دستور بسیار مفید Bash برای جستجوی محتوای یک فایل است. الگوی عبارت منظم را می توان با دستور “grep” برای جستجوی هر متن خاص در یک فایل استفاده کرد. دستور معمولی “grep” برای جستجوی محتوا در یک فایل استفاده می شود، اما گاهی اوقات نیاز به جستجوی محتوا در چندین فایل ذخیره شده در یک پوشه دارد. دستور بازگشتی “grep” برای جستجوی محتوا در فهرستی از چندین فایل استفاده می شود. روش های استفاده از grep بازگشتی در Bash در این آموزش نشان داده شده است.

نحو گرپ بازگشتی:

grep -r <الگو> <فهرست راهنما>

در اینجا، گزینه -r با دستور “grep” برای جستجوی بازگشتی استفاده می شود. برای جستجوی محتوا در فایل دایرکتوری های خاص از جمله زیر شاخه ها استفاده می شود. برای تعریف دایرکتوری که ممکن است حاوی یک یا چند فایل و دایرکتوری باشد استفاده می شود. و در این فایل ها و فایل های زیر شاخه ها جستجو می شود.

مثال 1: استفاده ساده از “Grep”

دستور “grep” می تواند یک رشته ساده یا یک الگوی عبارت منظم باشد. دستورات زیر را برای بررسی محتوای فایل “sales.txt” اجرا کنید و رشته “Feb” را در فایل دایرکتوری فعلی جستجو کنید:

$ گربه sales.txt

پیشنهاد می‌کنیم بخوانید:  روش بررسی وضعیت خروج با استفاده از عبارت «if» در Bash

$ grep ‘فوریه’ *

با توجه به خروجی زیر، رشته “Feb” در خط دوم فایل “sales.txt” وجود دارد. خروجی فرمان “grep” نشان می دهد که رشته جستجو در فایل “sales.txt” یافت می شود.

روش استفاده از دستور بازگشتی Grep برای جستجو در فهرست

مثال 2: استفاده از دستور “Grep” با -R Option و -Exclude-Dir Flag

برای جستجوی بازگشتی رشته “CSE” با حذف دایرکتوری temp، دستور زیر را اجرا کنید:

$ grep -r ‘CSE*’ — استثناء- کارگردان= “دمای”

با توجه به خروجی زیر، رشته “CSE” در سه خط فایل “sales.txt” پوشه temp وجود دارد:

p2p2

مثال 3: استفاده از دستور “Grep” با گزینه -R

گزینه -R با دستور grep برای جستجوی محتوای فایل و پیوند نمادین فایل استفاده می شود. برای جستجوی رشته “sleep” در تمامی فایل ها و لینک های نمادین فایل های دایرکتوری ها و زیرمجموعه های فعلی، دستور زیر را اجرا کنید:

$ grep ‘خواب’ *

خروجی زیر نتیجه جستجوی رشته “خواب” را در فهرست فعلی نشان می دهد. یک فایل از یک پیوند نمادین به نام “sleeplink.bash” در خروجی موجود است. سه فایل دیگر “sleep1.bash”، “sleep2.bash” و “sleep3.bas” هستند:

p3p3

مثال 4: استفاده از دستور “Grep” با گزینه -I

دستور “grep” مقدار رشته را به روشی حساس به حروف بزرگ و کوچک جستجو می کند. گزینه -i با دستور grep برای جستجوی محتوای موجود در فایل به روشی غیر حساس به حروف بزرگ و کوچک استفاده می شود. دستور زیر را برای جستجوی رشته «اعتبار» در همه فایل‌های دایرکتوری‌ها و زیرمجموعه‌های فعلی اجرا کنید:

$ grep -من ‘اعتبار’ *

با توجه به خروجی، رشته “اعتباری” در دو مکان از فایل “sum1.bash” وجود دارد. رشته جستجوگر “اعتبار” است و با رشته “اعتبار” برای استفاده از گزینه -i مطابقت دارد:

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

روش استفاده از دستور بازگشتی Grep برای جستجو در فهرستروش استفاده از دستور بازگشتی Grep برای جستجو در فهرست

مثال 5: استفاده از دستور “Grep” با نماد “^”.

نماد “^” برای جستجوی رشته در ابتدای خط یک فایل استفاده می شود. دستور زیر را اجرا کنید که رشته “printf” را در تمام فایل های Bash دایرکتوری فعلی جستجو می کند:

$ grep ‘^printf’ *.ضربه شدید

با توجه به خروجی، رشته “printf” در یک مکان از فایل “namedarg3.bash” وجود دارد:

روش استفاده از دستور بازگشتی Grep برای جستجو در فهرستروش استفاده از دستور بازگشتی Grep برای جستجو در فهرست

مثال 6: استفاده از دستور “Grep” با نماد “$”.

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

$ grep ‘[0-9]$’ *txt

با توجه به خروجی، سه فایل حاوی مقادیر عددی در انتهای خطوط هستند. اینها عبارتند از «courses.txt»، «employees.txt» و «sales.txt»:

روش استفاده از دستور بازگشتی Grep برای جستجو در فهرستروش استفاده از دستور بازگشتی Grep برای جستجو در فهرست

مثال 7: استفاده از دستور “Grep” با [0-9] کلاس محدوده

این [0-9] محدوده برای تعریف تمام اعدادی که دارای هر رقمی از 0 تا 9 هستند استفاده می شود. دستور زیر را اجرا کنید که خطوط را در تمام فایل های متنی دایرکتوری فعلی که حاوی یک رشته “CSE” و هر رقمی در فایل های دایرکتوری فعلی هستند جستجو می کند:

$ grep CSE[0-9]’ *txt

با توجه به خروجی، فایلی با نام “courses.txt” از فهرست فعلی حاوی “CSE” با ارقام در سه خط است:

روش استفاده از دستور بازگشتی Grep برای جستجو در فهرستروش استفاده از دستور بازگشتی Grep برای جستجو در فهرست

نتیجه

دستور “grep” عمدتا برای جستجو در یک فایل خاص استفاده می شود، اما “grep” بازگشتی برای جستجوی بازگشتی در چندین فایل از یک فهرست استفاده می شود. بنابراین، “grep” بازگشتی برای جستجوی عمیق کارآمدتر است. استفاده از “grep” بازگشتی با استفاده از انواع مختلف گزینه ها و الگوها در این آموزش نشان داده شده است.

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

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

5/5 (1 رای)
دیدگاه شما در خصوص مطلب چیست ؟

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

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