آذرسیس

Learning how to work with the grep command in Linux with an example

استفاده از دستور grep در لینوکس می تواند برای پیدا کردن دستورات و فایل ها در سیستم های لینوکسی کمک کننده باشد. در نگاه اول ممکن است جستجوی یک کلمه و یا فایل درون متن و یا vps کار ساده ای به نظر برسد ولی اگر این کلمه بین چندین فایل سرور مجازی لینوکس قرار گرفته باشد چطور؟ آیا همچنان برای شما به آسانی عملی خواهد شد؟ همراه ما باشید تا با دستور grep این کار را انجام دهیم.

نحوه کار با دستور grep در لینوکس 

دستور grep، یکی از مفید ترین و کاربردی ترین دستورات linux است که امکان جستجو متن و رشته های تعریف شده را در یک فایل مشخص برای کاربران فراهم می کند. با grep می توانید یک فایل را برای یک الگو یا کلمه خاص جستجو کرده و خطوطی که حاوی آن فایل باشد را پیدا کنید. برای شروع، با استفاده از دستور زیر به VPS خود توسط SSH وصل شوید:

ssh your-username@your-server

آموزش کار با دستور grep در لینوکس با مثال

1. جستجو و پیدا کردن فایل

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

dpkg -l | grep -i python

2. فیلتر و جستجو در فایل های مجزا 

کاربرد دیگر دستور grep، جستجو و فیلتر در فایل های مجزا و یا چندین فایل است. برای مثال، تصور کنید که به هنگام کار با وب سرور آپاچی دچار مشکل شده اید و از فرد متخصص در این مورد کمک خواسته اید. او از شما می خواهد تا محتوای فایل /etc/apache2/apache2.conf را برای او ارسال کنید. با اجرای دستور زیر برای راحتی کار می توانید خط های commented شده در فایل را حذف کنید:

 grep -v ^\# /etc/apache2/apache2.conf | grep.

آموزش کار با دستور grep در لینوکس با مثال

3. جستجو همه فایل های mp3 در لینوکس 

سومین دستور grep در لینوکس می تواند برای فیلتر کردن stdout کاربردی باشد. برای مثال اگر بخواهید تمامی فایل های mp3 از یک خواننده مد نظر را در بین چندین فایل با فرمت های متفاوت جستجو کنید، می توانید از این دستور استفاده کنید. یا می خواهید فایل های mp3 از همان خواننده را پیدا کنید اما نمی خواهید که آهنگ های ریمیکس شده در بین آنها باشد، از دستور زیر استفاده خواهیم کرد:

find. –name “*.mp3” | grep –i JayZ | grep –vi “remix”

4. نمایش چند خط قبل و بعد از جستجوی عبارت مد نظر 

دو دستور دیگر grep به صورت A_ و B_ وجود دارد که به شما این امکان را می دهد تا چند خط قبل و بعد از یک عبارت جستجو شده را با آن پیدا کنید. با دستور A_ می توانید چند خط بعد از عبارت و با دستور B_ چند خط قبل را جستجو کنید:

 ifconfig | grep -A 4 inet
 ifconfig | grep -B 2 UP

5. نمایش چند خط در محدوده عبارت Search شده 

دستور دیگر grep که به صورت C_ است، این دستور می تواند بر خلاف دستورات قبلی که چند خط قبل و بعد از عبارت را نمایش می دادند، خطوط را در هر دو جهت چاپ کند:

ifconfig | grep -C 2 lo

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 15314 bytes 1593769 (1.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0

6. شمارش تعداد Matches

از دستور grep در لینوکس می توان برای شمارش تعداد Matches استفاده کرد:

ifconfig | grep -c inet6

آموزش کار با دستور grep در لینوکس با مثال

7. جستجو فایل به کمک String داده شده در لینوکس 

n_ یکی از کاربردی ترین دستورات برای اشکال زدایی فایل ها به هنگام errors در حین کامپایل است. با اجرای دستور زیر می توانید شماره خط مربوط به string داده شده در فایل را مشاهده کنید:

grep -n "main" setup.py

8. Search یک عبارت در همه دایرکتوری ها 

با دستور r_ می توانید یک عبارت را در همه دایرکتوری ها در فهرست فعلی را جستجو کنید:

grep -r "function" *

9. جستجوی کامل برای Pattern مشخص شده 

با دستور -w می توانید کل pattern یک رشته را جستجو کنید:

ifconfig | grep -w "RUNNING"

10. جستجو یک رشته در فایل Gzipped 

برای جستجو یک رشته در فایل gzipped از دستور zgrep استفاده می کنیم:

zgrep -i error /var/log/syslog.2.gz

آموزش کار با دستور grep در لینوکس با مثال

11. مطابقت منظم عبارت ها در فایل 

دستور egrep از مشتقات grep است که می تواند عبارات اضافه مثل + ? | و () را تشخیص دهد. همچنین این دستور می تواند فایل های source و دیگر بخش های کد را جستجو کند:

grep -E

12. جستجو یک رشته Pattern ثابت 

با fgrep می توانید فایل یا لیست چند فایل را برای یک رشته الگوی ثابت جستجو کنید. برای ارسال فایل از الگوها نیز می توانید از دستور grep -F استفاده کنید:

fgrep –f file_full_of_patterns.txt file_to_search.txt

دستور grep در لینوکس را در این آموزش مورد بررسی قرار دادیم. امیدواریم این دستورات بتوانند برای شما کمک کننده باشند. اگر برای اجرای این دستورات به vps نیاز داشتید، می توانید با مراجعه به وبسایت آذرسیس سرور خود را از لوکیشن مد نظر با عملکرد برق آسا و قیمت مقرون به صرفه خریداری کنید.

سخن آخر

دستورات grep قابلیت های بیشماری را در اختیار شما قرار می دهد، ما در این آموزش 12 تا از این دستورات را مورد بررسی قرار دادیم. شما می توانید با خلاقیت خود از این دستورات برای اعداف متفاوت مانند نوشتن cron job و shell script های بی نظیر استفاده کنید. ممنون که همراه ما بودید، به هنگام خواندن این آموزش با مشکل و یا سوالی رو به رو شدید، می توانید با ارسال نظرات خود در بخش کامنت ها کارشناسان ما را مطلع سازید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *