grep یک فرمان کاربردی در لینوکس است، در این مقاله نحوه استفاده و کار با دستور grep را در توزیع های مختلف لینوکس به طور کامل به شما عزیزان آموزش خواهیم داد، همراه داتیس نتورک باشید.
دستور grep در لینوکس چیست؟
Grep مخفف عبارت Global Regular Expression Print است.
Grep ابزاری برای خط فرمان لینوکس/یونیکس است که برای جستجوی رشته ای از کاراکترهای موجود در یک فایل مشخص استفاده می شود.
به الگوی جستجوی متن یک regular expression گفته می شود.
این ابزار وقتی عبارت درست را پیدا کرد ، خط را با نتیجه چاپ می کند.
دستور grep هنگام جستجو در فایل های بزرگ مثل log می تواند بسیار مفید باشد.
آیا برای شما پیش آمده که بخواهید دنبال یک الگو یا string خاص در یک فایل بگردید در حالی که هیچ ایده ای ندارید که جستجوی خود را از آنجا شروع کنید. دستور grep در لینوکس اینجاست تا کمک تان کند.
grep دستور پیدا کردن الگوها درون متون میباشد که با تمامی ورژن های لینوکس به صورت پیش فرض ارائه شده است.
ولی اگر به هر دلیلی این ابزار کارآمد بر روی لینوکس شما نصب نبود بهراحتی میتوانید توسط مخزن مدیریت پکیج لینوکس خود آن را نصب کنید.
نصب Grep در لینوکس
grep یک جستجو گر قدرتمند فایل میباشد که روی هر توزیع از لینوکس موجود است.
اگر به هر دلیلی روی سیستم تان نصب نبود شما میتوانید آن را به آسانی و از طریق ابزارمدیریت پکیج yum روی RHEL/Centos/Fedora و apt-get روی سیستم های Debian/Ubuntu نصب کنید :
$ sudo apt-get install grep #Debian/Ubuntu $ sudo yum install grep #RHEL/CentOS/Fedora
نحوه استفاده از دستور grep در لینوکس
در مثال زیر ما در کل سیستم، فایلهایی که به فرمت mp3 بوده را جستجو و پیدا میکنیم و درون این فایلها به دنبال عبارات موردنظر خود میگردیم.
تمامی این کارها فقط و فقط با یک دستور قابل انجام خواهد بود:
find / –name “*.mp3” | grep –i sound
در این دستور ما علاوه بر پیدا کردن تمامی فایلهای با فرمت mp3. درون آنها فایلهایی که نام آن ها برابرست با sound را خروجی میگیریم.
جستجو و یافتن فایل ها
تصور کنید به تازگی نسخه جدیدی از اوبونتو را روی دستگاه خود نصب کرده اید و می خواهید با پایتون یک اسکریپت بنویسید.
شما در جستجوی آموزش های می بینید که دو نسخه مختلف Python وجود دارد و نمی دانید کدام یک روی سیستم شما نصب شده است یا اینکه آیا اصلا پایتون را نصب کرده اید یا نه.
این دستور را به سادگی اجرا کنید:
# dpkg -l | grep -i python
جستجو در یک فایل با grep
برای چاپ هر خط از فایلی که حاوی الگوی مشخصی از کاراکترها باشد ، برای بررسی “phoenix” در فایل sample2 ، دستور زیر را اجرا کنید:
grep phoenix sample2
Grep هر سطر را در جایی که منطبق با کلمه phoenix باشد نمایش می دهد.
خروجی گرفتن از تعداد رشتههای تکرار شده در فایلها و دستورات:
در مثال زیر ما خروجی دستور grep در لینوکس را بررسی میکنیم.
سپس توسط grep تعداد دفعاتی که کلمه Link تکرار شده است را در خروجی چاپ میکنیم.
ifconfig | grep –c Link
در مواقعی شما ممکن هستش با ارورهای خاصی در سیستم مواجه شوید و بخواهید یک فایل را دیباگ کنید و خط موردنظر آن را پیدا کنید و سپس درون آن فایل خط موردنظر را تصحیح کنید.
برای این کار سوییچ n- خط و محتوای مرتبط به رشتهای که به دنبال آن هستید را چاپ میکند.
grep –n "tcp" test.pl
یک دستور ترکیبی برای جستجوی حرفه ای تر توسط grep دستور زیر هستش که توسط آن شما می توانید تمامی فایلهایی که دارای فرمت mp4. هستند را پیدا کنید.
سپس فایلهایی که خواننده آن به طور مثال david هستند را پیدا کرده و خروجی های شامل remix را نشان ندهد.
find . -name ".mp4" | grep -i david | grep -vi "remix"
در مواقعی که قصد دارید درون یک فایل فشرده gz را جستجو کنید باید از دستور zgrep استفاده کنید.
، این دستور نیز عملکردی مشابه دستور grep در لینوکس خواهد داشت.
در دستور زیر ما به دنبال عبارت error در فایل فشرده هستیم.
zgrep –i error /var/log/syslog.2.gz
چنانچه به دنبال به الگوی دقیق و ثابت هستید و یا نام فایلی را میدانید میتوانید از دستور زیر استفاده کنید.
fgrep –f file_full_of_patterns.txt file_to_search.txt
دستور fgrep همان دستور grep –F نیز میباشد.
در دستور بالا ما یک فایل حاوی الگو و رشتههای موردنظر ایجاد کردیم و در فایل دوم نیز فایلهایی که میخواهیم درون آن ها به دنبال آن رشتهها باشیم.
چنانچه بخواهید به صورت recursively یا تودرتو دنبال عبارتی باشیم با دستور زیر بهراحتی میتوانیم این عمل را انجام دهیم و این کار با سوییچ r- قابل انجام خواهد بود.
grep -r "192.168.1.5" /etc/
خوب در آخر هم یک ترفند باحال اجرا کنیم، اگر الگویی که موردنظر ما بود در خروجی بهصورت رنگی ظاهر بشه، این کار با گزینه color — انجام میشه.
grep --color modireserver /etc/passwd
سخن پایانی
امیدواریم مقاله آشنایی با دستور grep و نحوه استفاده از آن مفید بوده باشد.
داتیس نتورک را در شبکه های اجتماعی دنبال کنید.