دستور grep در لینوکس | جستجوگر حرفه ای متن
GREP چیست؟
grep مخفف “global regular expression print” از مفیدترین ابزارها در سیستمهای لینوکس و یونیکس است. از این دستور برای جستجوی کلمات، عبارات یا الگوهای خاص در فایلهای متنی استفاده میشود و متن های منطبق را در خروجی به شما نشان میدهد.
Grep به صورت پیشفرض روی تمام توزیعهای لینوکس نصب شده و از این جهت نیازی به نصب کردن آن نیست. در ادامه به نحوه عملکرد دستور grep به همراه مثال های عملی خواهیم پرداخت، با ما همراه باشید.
ساختار کلی استفاده از دستور grep
دستور grep از سه بخش تشکیل شده است:
- دستور grep
- الگویی که جستجو میکنید.
- نام فایلی که grep در آن جستجو میکند.
grep '[search_pattern]' [file_name]مثال های دستور grep
فرض کنید که یک فایل با نام hello.txt داریم که متن زیر در آن وجود دارد:
Welcome to Linux !
linux is a free and opensource Operating system that is mostly used by
developers and in production servers for hosting crucial components such as web
and database servers. linux has also made a name for itself in PCs.
Beginners looking to experiment with linux can get started with friendlier linux
distributions such as Ubuntu, Mint, Fedora and Elementary OS.حال میخواهیم کلمه linux را به کمک دستور grep در فایل hello.txt پیدا کنیم، دستور آن به شرح زیر است:
grep 'linux' hello.txtخروجی آن به شکل زیر خواهد بود:

همانطور که در خروجی بالا مشاهده میکنید قسمت هایی از متن که با عبارت وارد شده برای جستجو منطبق بوده را به رنگ قرمز در خروجی هایلایت شده است.
جستجو به صورت بازگشتی
اگر میخواهید یک عبارت را در دایرکتوری فعلی و تمام زیر دایرکتور های آن جستجو کنید کافیست از گزینه-r مانند مثال زیر استفاده کنید:
grep -r 'linux' *
در این مثال عبارت linux را به کمک دستور grep در دایرکتوری و زیر دایرکتوری های جاری جستجو و در خروجی نام فایل و جلوی آن خطی که عبارت منطبق در آن وجود دارد را نمایش میدهد.
نادیده گرفتن حساسیت به حروف بزرگ و کوچک
به صورت پیشفرض دستور grep به حروف کوچک و بزرگ حساس است. با استفاده از گزینه -i حساسیت به حروف کوچک و بزرگ نادیده گرفته میشود.
grep -i 'linux' hello.txt
در مثال بالا از گزینه -i برای نادیده گرفتن حساسیت به حروف کوچک و بزرگ استفاده کرده ایم، همانطور که در خروجی مشاهده میکنید در ابتدای متن کلمه Linux که با حرف اول بزرگ است هم در خروجی نمایش داده شده است.