از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از دستور بازگشتی Grep برای جستجو در فهرست
سرفصلهای مطلب
“Grep” دستور بسیار مفید Bash برای جستجوی محتوای یک فایل است. الگوی عبارت منظم را می توان با دستور “grep” برای جستجوی هر متن خاص در یک فایل استفاده کرد. دستور معمولی “grep” برای جستجوی محتوا در یک فایل استفاده می شود، اما گاهی اوقات نیاز به جستجوی محتوا در چندین فایل ذخیره شده در یک پوشه دارد. دستور بازگشتی “grep” برای جستجوی محتوا در فهرستی از چندین فایل استفاده می شود. روش های استفاده از grep بازگشتی در Bash در این آموزش نشان داده شده است.
نحو گرپ بازگشتی:
در اینجا، گزینه -r با دستور “grep” برای جستجوی بازگشتی استفاده می شود.
مثال 1: استفاده ساده از “Grep”
$ grep ‘فوریه’ *
با توجه به خروجی زیر، رشته “Feb” در خط دوم فایل “sales.txt” وجود دارد. خروجی فرمان “grep” نشان می دهد که رشته جستجو در فایل “sales.txt” یافت می شود.
مثال 2: استفاده از دستور “Grep” با -R Option و -Exclude-Dir Flag
برای جستجوی بازگشتی رشته “CSE” با حذف دایرکتوری temp، دستور زیر را اجرا کنید:
با توجه به خروجی زیر، رشته “CSE” در سه خط فایل “sales.txt” پوشه temp وجود دارد:
مثال 3: استفاده از دستور “Grep” با گزینه -R
گزینه -R با دستور grep برای جستجوی محتوای فایل و پیوند نمادین فایل استفاده می شود. برای جستجوی رشته “sleep” در تمامی فایل ها و لینک های نمادین فایل های دایرکتوری ها و زیرمجموعه های فعلی، دستور زیر را اجرا کنید:
خروجی زیر نتیجه جستجوی رشته “خواب” را در فهرست فعلی نشان می دهد. یک فایل از یک پیوند نمادین به نام “sleeplink.bash” در خروجی موجود است. سه فایل دیگر “sleep1.bash”، “sleep2.bash” و “sleep3.bas” هستند:
مثال 4: استفاده از دستور “Grep” با گزینه -I
دستور “grep” مقدار رشته را به روشی حساس به حروف بزرگ و کوچک جستجو می کند. گزینه -i با دستور grep برای جستجوی محتوای موجود در فایل به روشی غیر حساس به حروف بزرگ و کوچک استفاده می شود. دستور زیر را برای جستجوی رشته «اعتبار» در همه فایلهای دایرکتوریها و زیرمجموعههای فعلی اجرا کنید:
با توجه به خروجی، رشته “اعتباری” در دو مکان از فایل “sum1.bash” وجود دارد. رشته جستجوگر “اعتبار” است و با رشته “اعتبار” برای استفاده از گزینه -i مطابقت دارد:
مثال 5: استفاده از دستور “Grep” با نماد “^”.
نماد “^” برای جستجوی رشته در ابتدای خط یک فایل استفاده می شود. دستور زیر را اجرا کنید که رشته “printf” را در تمام فایل های Bash دایرکتوری فعلی جستجو می کند:
با توجه به خروجی، رشته “printf” در یک مکان از فایل “namedarg3.bash” وجود دارد:
مثال 6: استفاده از دستور “Grep” با نماد “$”.
نماد “$” برای جستجوی رشته در انتهای خط یک فایل استفاده می شود. دستور زیر را اجرا کنید که خطوط را در تمام فایل های متنی دایرکتوری فعلی که حاوی ارقام انتهای فایل هستند جستجو می کند:
با توجه به خروجی، سه فایل حاوی مقادیر عددی در انتهای خطوط هستند. اینها عبارتند از «courses.txt»، «employees.txt» و «sales.txt»:
مثال 7: استفاده از دستور “Grep” با [0-9] کلاس محدوده
این [0-9] محدوده برای تعریف تمام اعدادی که دارای هر رقمی از 0 تا 9 هستند استفاده می شود. دستور زیر را اجرا کنید که خطوط را در تمام فایل های متنی دایرکتوری فعلی که حاوی یک رشته “CSE” و هر رقمی در فایل های دایرکتوری فعلی هستند جستجو می کند:
با توجه به خروجی، فایلی با نام “courses.txt” از فهرست فعلی حاوی “CSE” با ارقام در سه خط است:
نتیجه
دستور “grep” عمدتا برای جستجو در یک فایل خاص استفاده می شود، اما “grep” بازگشتی برای جستجوی بازگشتی در چندین فایل از یک فهرست استفاده می شود. بنابراین، “grep” بازگشتی برای جستجوی عمیق کارآمدتر است. استفاده از “grep” بازگشتی با استفاده از انواع مختلف گزینه ها و الگوها در این آموزش نشان داده شده است.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 20:02:03