۵
(۱)

مقدمه

دستور `grep` یکی از قدرتمندترین ابزارهای موجود در لینوکس است که برای جستجوی الگوهای متنی در فایل‌ها و خروجی دستورات استفاده می‌شود. این دستور مخفف عبارت Global Regular Expression Print است و می‌تواند متن خاصی را با استفاده از الگوهای ساده یا پیچیده (مانند عبارات منظم) جستجو کند. در این مقاله، به آموزش کامل استفاده از دستور `grep` می‌پردازیم.

ساختار دستور Grep

ساختار کلی دستور `grep` به صورت زیر است:

grep [گزینه‌ها] "الگو" [فایل‌ها]

– الگو: متن یا عبارت منظمی که می‌خواهید جستجو کنید.
– فایل‌ها: فایل یا فایل‌هایی که می‌خواهید در آنها جستجو انجام شود.

نمونه‌های ساده استفاده از Grep

۱. جستجوی یک متن خاص در فایل

برای جستجوی عبارت “example” در فایلی به نام `file.txt`:

grep "example" file.txt

۲. جستجو در چند فایل به طور همزمان

برای جستجو در فایل‌های `file1.txt` و `file2.txt`:

grep "example" file1.txt file2.txt

۳. جستجو بدون در نظر گرفتن حروف بزرگ و کوچک

برای جستجو به‌صورت غیرحساس به حروف بزرگ و کوچک:

grep -i "example" file.txt

گزینه‌های پرکاربرد Grep

۱. -n: نمایش شماره خط

این گزینه شماره خط‌هایی که متن در آنها پیدا شده را نمایش می‌دهد:

grep -n "example" file.txt

۲. -v: نمایش خطوطی که شامل الگو نیستند

برای نمایش تمام خطوطی که حاوی عبارت جستجو شده نیستند:

grep -v "example" file.txt

۳. -c: شمارش تعداد مطابقت‌ها

برای شمارش تعداد خطوطی که شامل عبارت موردنظر هستند:

grep -c "example" file.txt

۴. -r: جستجو به صورت بازگشتی در پوشه‌ها

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

grep -r "example" /path/to/directory

۵. -l: نمایش نام فایل‌هایی که شامل الگو هستند

اگر بخواهید فقط نام فایل‌هایی که شامل عبارت جستجو هستند را مشاهده کنید:

grep -l "example" *

استفاده از عبارات منظم (Regular Expressions)

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

۱. جستجوی خطوطی که با یک عبارت شروع می‌شوند

برای پیدا کردن خطوطی که با کلمه “start” شروع می‌شوند:

grep "^start" file.txt

۲. جستجوی خطوطی که با یک عبارت پایان می‌یابند

برای پیدا کردن خطوطی که با کلمه “end” تمام می‌شوند:

grep "end$" file.txt

۳. جستجوی خطوطی که شامل یک الگو با کاراکترهای خاص هستند

برای جستجوی هر رشته‌ای که شامل “t” و سپس هر کاراکتر دیگری است:

grep "t." file.txt

ترکیب دستور Grep با سایر دستورات لینوکس

۱. استفاده با دستور `ls`

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

ls | grep "example"

۲. ترکیب با `ps` برای جستجوی پروسه‌ها

برای پیدا کردن پروسه‌ای خاص:

ps aux | grep "firefox"

۳. فیلتر کردن خروجی دستورات دیگر

مثلاً پیدا کردن خطوطی که شامل خطا (error) هستند:

dmesg | grep "error"

نسخه‌های پیشرفته‌تر: egrep و fgrep

– egrep: نسخه‌ای از `grep` که از عبارات منظم پیشرفته‌تر (Extended Regular Expressions) پشتیبانی می‌کند.

egrep "(error|warning)" file.txt

– fgrep: نسخه‌ای از `grep` که بدون استفاده از عبارات منظم عمل می‌کند.

fgrep "example" file.txt

جمع‌بندی

دستور `grep` یکی از ابزارهای ضروری و کاربردی برای هر کاربر لینوکس است. با تسلط بر این دستور، می‌توانید به راحتی متن‌ها را در فایل‌ها جستجو کنید، خروجی دستورات را فیلتر کنید و حتی از عبارات منظم برای جستجوهای پیچیده‌تر استفاده کنید. پیشنهاد می‌کنیم این دستور را در پروژه‌ها و کارهای روزمره خود امتحان کنید تا بهتر با قدرت آن آشنا شوید.

چقدر این مطلب مفید بود؟

روی یک ستاره کلیک کنید تا به آن امتیاز دهید!

میانگین امتیاز ۵ / ۵. تعداد آرا: ۱

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