از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از دستور Grep لینوکس
سرفصلهای مطلب
در نگاه اول، جستجو برای فایل ها روی یک VPS ممکن است یک کار ساده به نظر برسد. با این حال، می تواند به سرعت بسیار زیاد شود، به خصوص اگر هزاران فایل گزارش بزرگ برای بررسی داشته باشید یا یک سیستم عامل لینوکس را بدون رابط گرافیکی اجرا کنید.
اینجاست که دستور grep وارد می شود و به کاربران این امکان را می دهد که به راحتی رشته ای را در سیستم جستجو کنند.
در این آموزش، اصول دستور grep و همچنین برخی کاربردهای عملی مانند جستجوی رشته های متعدد و انجام جستجوی grep را به صورت بازگشتی بررسی خواهیم کرد.
دستور grep در لینوکس چیست؟
Grep یا چاپ عبارت منظم جهانی، یکی از همه کاره ترین و مفیدترین دستورات لینوکس موجود است. متن و رشته های تعریف شده توسط کاربران در یک فایل مشخص را جستجو می کند. Grep به کاربران این امکان را می دهد که فایل ها را برای یک الگو یا کلمه خاص جستجو کنند و ببینند کدام خطوط حاوی آن هستند.
برای مثال، مدیران سیستم که صدها سرویس و فایل پیکربندی را مدیریت میکنند، از grep برای جستجوی خطوط خاصی در آن فایلها استفاده میکنند.
برای شروع استفاده از دستور grep، با استفاده از SSH به VPS متصل شوید.
ssh your-username@your-server
کاربران لینوکس فقط می توانند آن را باز کنند terminal.
دستور grep نحو
سینتکس پایه grep هنگام جستجوی یک فایل به صورت زیر است:
grep [options] pattern [FILE]
- grep – دستورالعمل فرمان
- [options] – اصلاح کننده های دستور
- الگو – جستجوی جستجو پیدا شود
- [FILE] – فایلی که دستور در آن جستجو خواهد شد.
یک مثال بصری به این صورت خواهد بود:
اگر به اطلاعات بیشتری در مورد دستور نیاز دارید، با اجرای دستور زیر، مستندات جامع را بررسی کنید:
grep --help
در حالی که دستور grep گزینه های زیادی را ارائه می دهد، مهم ترین و رایج ترین پرچم های مورد استفاده عبارتند از:
- -آ – چاپ خطوط قبل از رشته همسان.
- -ب – چاپ خطوط بعد از رشته همسان.
- -سی – چاپ خطوط قبل و بعد از رشته همسان.
ABC پرچمها به شما کمک میکنند تا زمینهای را به جستجوهای خود اضافه کنید. به عنوان مثال، هنگام استفاده از grep در یک فایل پیکربندی، خطوط قبل یا بعد از رشته مورد نظر شما ممکن است اطلاعات مفیدتری در مورد جستجو ارائه دهد.
در مثال دستور بالا، ما از ابزار معمولی grep استفاده کردیم که فقط نشان داد را کلمه عبور خط سپس، ما را با هم ترکیب کردیم A1 برای چاپ یک خط اضافی قبل از مطابقت پرچم گذاری کنید کلمه عبور رشته مشابه process با انجام شد B1 و C1 پرچم ها
برای سفارشی کردن جستجوی خود حتی بیشتر، پرچم های زیر را اضافه کنید:
- -من – جستجوی غیر حساس به حروف کوچک و بزرگ اگر کاربران، برای مثال، یک رشته را جستجو کنند ماشین، نتایج مشابه را نشان خواهد داد ماشین.
- -w – فقط کلمات کامل را جستجو می کند، اگر رشته شما بخشی از کلمه دیگری است، نادیده گرفته شود.
- -ج – تعداد موارد مطابق با الگوی جستجو شده را نشان می دهد.
- -r – جستجوی بازگشتی را در فهرست فعلی فعال می کند.
- -n – خطوط را جستجو کنید و فقط اعداد مطابق خطوط متن را دریافت کنید.
- -v – این گزینه خطوطی را نشان می دهد که با الگوی مشخص شده مطابقت ندارند.
نمونه های خط فرمان grep
این مثال های مفید از دستور grep را برای درک بهتر آن بررسی کنید.
از grep برای جستجوی کلمه در یک فایل استفاده کنید
یکی از موارد استفاده محبوب برای grep، جستجوی یک کلمه خاص در داخل یک فایل متنی است.
برای این کار کافیست دستور زیر را تایپ کنید:
grep query file
- پرس و جو – کلمه ای که به دنبال آن هستید.
- فایل – فایلی که در آن به دنبال پرس و جو می گردید.
در مورد ما، ما به دنبال کلمه هستیم VPS در فایل نمونه به نام هاستینگertxt:
grep میزبانی VPSer.txt
خروجی خطوطی را که با این کوئری مطابقت دارند برجسته می کند:
از grep برای یافتن تطابق کلمه کلیدی در چندین فایل استفاده کنید
اگر نیاز به جستجو در چندین فایل دارید، به این نحو مراجعه کنید:
grep query file1 file2 file3
- پرس و جو – کلمه ای که به دنبال آن هستید.
- file1, file2, file3 – فایل هایی که در آنها به دنبال پرس و جو می گردید.
در مثال خود ما به دنبال کلمه هستیم VPS در این سه فایل: هاستینگertxt، VPS.txt، Sharedهاستینگ.txt.
همچنین با استفاده از دستور زیر می توان تمامی فایل های موجود در یک دایرکتوری را جستجو کرد.
grep query *
از grep برای جستجوی کلمات کلیدی متعدد استفاده کنید
تا کنون، ما دستورات grep را برای تطبیق یک کلمه کلیدی پوشش داده ایم. با این حال، grep همچنین از چندین کوئری در یک فرمان پشتیبانی می کند.
در اینجا چهار روش مختلف برای جستجوی چند کلمه کلیدی وجود دارد:
grep 'query1\|query2' file egrep 'query1|query2' file grep -e query1 -e query2 file grep -E 'query1|query2' file
هر یک از این دستورات به طور مشابه کار می کنند – شما می توانید با توجه به اولویت خود تصمیم بگیرید که از کدام یک استفاده کنید.
از grep برای یافتن مواردی که با پرس و جو شروع یا ختم می شوند، استفاده کنید
جستجوهای Grep همچنین می توانند به دنبال رشته هایی باشند که با پرس و جوی مشخص شده توسط کاربر شروع یا پایان می یابند. برای مطابقت با شروع یک خط، از ^ عبارت منظم.
grep '^query2' file
از طرف دیگر، برای مطابقت با انتهای یک خط، از علامت استفاده کنید $ عبارت منظم:
grep '&query2' file grep
کاربران همچنین می توانند این دو عبارت منظم را با هم ترکیب کرده و تمام خطوطی را که شامل جستجوی شروع و پایان هستند جستجو کنند.
grep '^queryStart.*queryEnd$'
به عنوان مثال، ما به دنبال خطوطی خواهیم بود که با آن شروع می شوند اچ و به پایان برسد o:
همانطور که در بالا مشاهده شد، خطوطی که دارای سلام رشته با عبارت جستجوی ما مطابقت دارد.
از grep برای نمایش شماره خط با جستجوی فرمان grep استفاده کنید
فایل های پیکربندی لینوکس معمولا طولانی هستند و از چند صد تا چند هزار خط متغیر هستند. به همین دلیل، ردیابی موقعیت خطوط می تواند بسیار سخت باشد.
خوشبختانه، grep می تواند کمک کند. با استفاده از -n با پرچم، کاربران میتوانند شماره خطوط و همچنین عبارت جستجوی خود را ببینند.
در مورد ما، ما از grep برای جستجو استفاده کردیم خط رشته داخل Grep.txt فایل. اعداد سبز روی اعداد خط نمایش سمت چپ روی فایل ما
از grep برای استفاده از Invert grep Search استفاده کنید
کاربران می توانند با استفاده از عبارت grep را معکوس کنند -v پرچم. این برای چاپ خطوط غیر منطبق بسیار مفید است. مثال زیر نشان می دهد که چگونه دستور خطوط خروجی را نشان می دهد که با آن مطابقت ندارند VPS پرس و جو جستجو
ما همچنین عبارات منظم را ترکیب کرده و از آن استفاده کرده ایم -n پرچم گذاری کنید تا شماره خطوط منطبق را ببینید.
از grep برای انجام جستجوی بازگشتی grep استفاده کنید
grep بازگشتی برای جستجوی بین تمام خطوط در زیر شاخه ها و فایل های داخل فهرست کاری فعلی مفید است. برای این مثال، a ایجاد کرده ایم گرپ دایرکتوری با VPS و اشتراک هاست دایرکتوری ها در داخل آن هستند و به دنبال آن خواهند بود را VPS پرس و جو.
از grep برای صادر کردن خروجی grep به یک فایل استفاده کنید
اگر نیاز به ذخیره خروجی دستور grep دارید، می توانید این کار را در یک فایل جداگانه انجام دهید. ساده ترین راه این است که به دستور زیر مراجعه کنید:
grep query file > OutputFile.txt
به خاطر داشته باشید که نیازی به ایجاد فایل از قبل ندارید، زیرا با اجرای دستور بالا آن را به صورت خودکار ایجاد می کنید. این چیزی است که در خط فرمان به نظر می رسد:
همانطور که در مثال بالا مشاهده می شود، ما نیز از آن استفاده کرده ایم گربه برای چاپ محتویات فایل جدید ایجاد شده.
نتیجه
دستور grep جستجوی بین صدها فایل و دایرکتوری را آسان می کند. با مجموعه گسترده ای از پرچم های مختلف، می توانید خطوط خاص را به سرعت پیدا کنید.
در این آموزش، نحو دستور grep را پوشش داده ایم و یاد گرفته ایم که چگونه:
- جستجوی کلمه در یک فایل
- یافتن تطابق کلمه کلیدی در چندین فایل.
- جستجوی چند کلمه کلیدی
- موارد منطبق را پیدا کنید که با درخواست شما شروع یا پایان می یابد.
- نمایش شماره خط
- از جستجوی grep معکوس استفاده کنید.
- انجام جستجوی بازگشتی
- محتویات خروجی grep را به یک فایل صادر کنید.
ما همچنین برخی از پرچمهای محبوب را ارائه کردهایم که میتوانید هنگام آزمایش دستور grep از آنها استفاده کنید. اگر نظر یا سوالی دارید، در بخش نظرات زیر با ما در میان بگذارید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 15:36:03