نحوه استفاده از دستور grep در لینوکس #
مقدمه #
این grepدستور در لینوکس یک ابزار مرتبسازی است که برای جستجوی الگوهای متنی در فایلها استفاده میشود. همچنین به عنوان عبارت منظم جهانی print( grep) شناخته میشود و به طور فعال الگوها را در انواع فایلهای خروجی مانند پیکربندیها، متن یا کد برنامه مطابقت میدهد.
این مقاله نحوه استفاده از grepدستور در لینوکس برای جستجو و دستکاری متن در فایلها را توضیح میدهد.
🇫🇷 سرور مجازی فرانسه 🇫🇷
grepسینتکس دستور #
در زیر سینتکس دستور آمده است grep:
$ grep [options] pattern [file...]در دستور بالا، patternمتن هدف یا عبارت منظمی که باید جستجو شود چیست؟ در حالی که [file...]یک یا چند فایل را برای جستجو مشخص میکند.
grepگزینههای فرمان #
| گزینه | توضیحات |
|---|---|
-i | تمایز حروف کوچک و بزرگ را در الگو نادیده بگیرید. |
-v | تطبیق را معکوس میکند و خطوطی را نمایش میدهد که با یک الگو مطابقت ندارند. |
-c | تعداد خطوط منطبق را بشمارید. |
-l | نام فایلها را با خطوط منطبق فهرست کنید. |
-n | نمایش شماره خطوط با خطوط منطبق. |
-r | جستجوی بازگشتی در دایرکتوریها. |
-w | فقط کلمات کامل را مطابقت دهید. |
-x | فقط کل خطوط را مطابقت دهید. |
-A | نمایش N خط متن پس از تطبیق. |
-B | نمایش N خط متن قبل از تطبیق. |
-C | N خط متن پیرامون تطابق نمایش بده. |
مثالهای عملی از grepفرمان #
- یک جستجوی اولیه انجام دهید.
$ grep "Negarnovin" file.txt- دستور بالا رشته
Negarnovinمورد نظر را جستجو میکندfile.txtو تمام نتایج منطبق در فایل را نمایش میدهد.خروجی:
- حساسیت به حروف کوچک و بزرگ را نادیده بگیرید.console
$ grep -i "Negarnovin" file.txt
- دستور بالا متن را جستجو میکند
Negarnovinو تمام نتایجی را که با هر موردی مطابقت دارند نمایش میدهد. برای مثال، متنی مانندNegarnovin،NegarNovin، وNEGARNOVINبا جستجو مطابقت دارد.خروجی:
- تطبیق را معکوس میکند و تمام خطوطی را که شامل یک رشته خاص نیستند، نمایش میدهد.console
$ grep -v "Negarnovin" file.txt
- دستور بالا تمام خطوطی را که شامل رشته نیستند، نمایش میدهد
Negarnovin.خروجی:
- خطوطی را بشمارید که الگوی یکسانی دارند.console
$ grep -c "Negarnovin" file.txt
- دستور بالا تعداد خطوطی که شامل متن هستند را میشمارد
negarnovin.خروجی:
- فهرست کردن فایلهای مدیر که با ترتیب نام فایل خاصی مطابقت دارند.console
$ grep -l "Hello" *.txt
- دستور بالا تمام فایلهای موجود در دایرکتوری کاری که شامل رشته هستند را فهرست میکند
Hello.خروجی:
- نمایش شماره خطوط.console
$ grep -n "Negarnovin" file.txt
- دستور بالا تمام خطوطی را که با رشته
Negarnovinو شماره خط مربوطه مطابقت دارند، نمایش میدهد.خروجی:
- یک جستجوی بازگشتی انجام دهید.console
$ grep -r "Hello" /path/to/directory
- دستور بالا رشته مورد نظر را
Helloدر تمام فایلهای درون یک دایرکتوری خاص و تمام زیر دایرکتوریها جستجو میکند.خروجی:
- کلمات کامل را با هم تطبیق دهید.console
$ grep -w "Negarnovin" file.txt
- دستور بالا رشته را
Negarnovinبه صورت یک کلمه کامل در فایل جستجو میکندfile.txt.خروجی:
استفاده از عبارات منظم باgrep #
این grepدستور از عبارات منظم (Regex) پشتیبانی میکند که مجموعهای از رشتهها را برای جستجو با روشهای تطبیق الگوی پیشرفته توصیف میکنند.
- جستجوی یک رشته در ابتدای یک خطconsole
$ grep "^Negarnovin" file.txt
- دستور بالا تمام خطوطی را که با رشته شروع میشوند، مطابقت داده و نمایش میدهد
Negarnovin.خروجی:
- جستجوی یک رشته در انتهای یک خطconsole
$ grep "rates.$" file.txt
- دستور بالا خطوطی را که به رشته ختم میشوند، تطبیق داده و نمایش میدهد
rates..خروجی:
دستور grep در لینوکس - خطوطی را جستجو کنید که شامل طیف وسیعی از اعداد بین
۰و باشند۹.console$ grep "[۰-۹]" file.txt
- دستور فوق خطوطی را که شامل هر عددی در محدوده مشخص شده هستند، مطابقت داده و نمایش میدهد.خروجی:

سناریوهای پیشرفته استفاده #
- جستجوی الگوهای چندگانه.console
$ grep -e "Agrawal" -e "Aggrawal" file.txt
- دستور بالا تمام خطوطی را که شامل یکی از این دو
Agrawalیا هستند ، جستجو میکندAggrawal.خروجی:
grepبرای فیلتر کردن نتایج، با دستورات دیگر ترکیب کنید .
$ ps aux | grep "process_name"- دستور فوق تمام فرآیندها را جستجو میکند و از آن
grepبرای فیلتر کردن تمام فرآیندهای در حال اجرا با رشته استفاده میکندprocess_name.خروجی:
grepبا استفاده کنیدfind.console$ find /path/to/directory -type f -exec grep "example" {} +
- دستور بالا رشته مورد نظر را
exampleدرfindخروجی دستور جستجو میکند.خروجی:
- نمایش خطوط به همراه متن.console
$ grep -C ۳ "Negarnovin" file.txt
- دستور بالا سه خط متن را در هر خط منطبق نمایش میدهد.خروجی:

- جستجوی فایلهای فشردهconsole
$ zgrep "pattern" file.gz
- دستور بالا رشته مورد نظر را
patternدر فایل فشرده جستجو میکندfile.gz.خروجی:
- فایلهای خاص را از جستجو مستثنی کنید.console
$ grep --exclude="*.log" -r "pattern" /path/to/directory
- دستور بالا به صورت بازگشتی
patternفایلهایی با.logپسوند را جستجو میکند اما آنها را حذف میکند.خروجی:
نتیجه گیری #
grepشما از این دستور برای جستجوی کارآمد و دستکاری دادههای متنی در فایلها و دایرکتوریها استفاده کردهاید . برای گزینههای بیشتر دستور، به صفحه راهنما man grepمراجعه کنید grep.
















