نحوه استفاده از دستور 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.  کاربران می توانند پرچم ها، رشته های جستجو و نام فایل ها را مشخص کنند.نحو اصلی دستور grep.  کاربران می توانند پرچم ها، رشته های جستجو و نام فایل ها را مشخص کنند.

اگر به اطلاعات بیشتری در مورد دستور نیاز دارید، با اجرای دستور زیر، مستندات جامع را بررسی کنید:

grep --help

در حالی که دستور grep گزینه های زیادی را ارائه می دهد، مهم ترین و رایج ترین پرچم های مورد استفاده عبارتند از:

  • – چاپ خطوط قبل از رشته همسان.
  • – چاپ خطوط بعد از رشته همسان.
  • -سی – چاپ خطوط قبل و بعد از رشته همسان.

ABC پرچم‌ها به شما کمک می‌کنند تا زمینه‌ای را به جستجوهای خود اضافه کنید. به عنوان مثال، هنگام استفاده از grep در یک فایل پیکربندی، خطوط قبل یا بعد از رشته مورد نظر شما ممکن است اطلاعات مفیدتری در مورد جستجو ارائه دهد.

الگوی عبارت منظم ABC برای دستور grepالگوی عبارت منظم ABC برای دستور grep

در مثال دستور بالا، ما از ابزار معمولی grep استفاده کردیم که فقط نشان داد را کلمه عبور خط سپس، ما را با هم ترکیب کردیم A1 برای چاپ یک خط اضافی قبل از مطابقت پرچم گذاری کنید کلمه عبور رشته مشابه process با انجام شد B1 و C1 پرچم ها

پیشنهاد می‌کنیم بخوانید:  مجوز وردپرس: GPL چیست و چگونه با پلاگین ها و تم ها کار می کند

برای سفارشی کردن جستجوی خود حتی بیشتر، پرچم های زیر را اضافه کنید:

  • -من – جستجوی غیر حساس به حروف کوچک و بزرگ اگر کاربران، برای مثال، یک رشته را جستجو کنند ماشین، نتایج مشابه را نشان خواهد داد ماشین.
  • -w – فقط کلمات کامل را جستجو می کند، اگر رشته شما بخشی از کلمه دیگری است، نادیده گرفته شود.
  • – تعداد موارد مطابق با الگوی جستجو شده را نشان می دهد.
  • -r – جستجوی بازگشتی را در فهرست فعلی فعال می کند.
  • -n – خطوط را جستجو کنید و فقط اعداد مطابق خطوط متن را دریافت کنید.
  • -v – این گزینه خطوطی را نشان می دهد که با الگوی مشخص شده مطابقت ندارند.

نمونه های خط فرمان grep

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

از grep برای جستجوی کلمه در یک فایل استفاده کنید

یکی از موارد استفاده محبوب برای grep، جستجوی یک کلمه خاص در داخل یک فایل متنی است.

برای این کار کافیست دستور زیر را تایپ کنید:

grep query file
  • پرس و جو – کلمه ای که به دنبال آن هستید.
  • فایل – فایلی که در آن به دنبال پرس و جو می گردید.

در مورد ما، ما به دنبال کلمه هستیم VPS در فایل نمونه به نام هاستینگertxt:

grep میزبانی VPSer.txt

خروجی خطوطی را که با این کوئری مطابقت دارند برجسته می کند:

جستجوی کلمه در یک فایل مشخص با grep.  کاربران فقط باید عبارت جستجو و نام فایل را مشخص کنند.جستجوی کلمه در یک فایل مشخص با grep.  کاربران فقط باید عبارت جستجو و نام فایل را مشخص کنند.

از 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 برای یافتن مواردی که با پرس و جو شروع یا ختم می شوند، استفاده کنید

جستجوهای Grep همچنین می توانند به دنبال رشته هایی باشند که با پرس و جوی مشخص شده توسط کاربر شروع یا پایان می یابند. برای مطابقت با شروع یک خط، از ^ عبارت منظم.

grep '^query2' file

از طرف دیگر، برای مطابقت با انتهای یک خط، از علامت استفاده کنید $ عبارت منظم:

grep '&query2' file grep

کاربران همچنین می توانند این دو عبارت منظم را با هم ترکیب کرده و تمام خطوطی را که شامل جستجوی شروع و پایان هستند جستجو کنند.

grep '^queryStart.*queryEnd$'

به عنوان مثال، ما به دنبال خطوطی خواهیم بود که با آن شروع می شوند اچ و به پایان برسد o:

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

همانطور که در بالا مشاهده شد، خطوطی که دارای سلام رشته با عبارت جستجوی ما مطابقت دارد.

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

فایل های پیکربندی لینوکس معمولا طولانی هستند و از چند صد تا چند هزار خط متغیر هستند. به همین دلیل، ردیابی موقعیت خطوط می تواند بسیار سخت باشد.

خوشبختانه، grep می تواند کمک کند. با استفاده از -n با پرچم، کاربران می‌توانند شماره خطوط و همچنین عبارت جستجوی خود را ببینند.

جستجوی Grep با پرچم -n که کل خط و شماره خط را نشان می دهدجستجوی Grep با پرچم -n که کل خط و شماره خط را نشان می دهد

در مورد ما، ما از grep برای جستجو استفاده کردیم خط رشته داخل Grep.txt فایل. اعداد سبز روی اعداد خط نمایش سمت چپ روی فایل ما

کاربران می توانند با استفاده از عبارت grep را معکوس کنند -v پرچم. این برای چاپ خطوط غیر منطبق بسیار مفید است. مثال زیر نشان می دهد که چگونه دستور خطوط خروجی را نشان می دهد که با آن مطابقت ندارند VPS پرس و جو جستجو

جستجوی grep معکوس  مطابقت های دقیق را می گیرد و آنها را از خروجی حذف می کندجستجوی grep معکوس  مطابقت های دقیق را می گیرد و آنها را از خروجی حذف می کند

ما همچنین عبارات منظم را ترکیب کرده و از آن استفاده کرده ایم -n پرچم گذاری کنید تا شماره خطوط منطبق را ببینید.

از grep برای انجام جستجوی بازگشتی grep استفاده کنید

grep بازگشتی برای جستجوی بین تمام خطوط در زیر شاخه ها و فایل های داخل فهرست کاری فعلی مفید است. برای این مثال، a ایجاد کرده ایم گرپ دایرکتوری با VPS و اشتراک هاست دایرکتوری ها در داخل آن هستند و به دنبال آن خواهند بود را VPS پرس و جو.

جستجوی بازگشتی grep برای فایل مشخص شدهجستجوی بازگشتی grep برای فایل مشخص شده

از grep برای صادر کردن خروجی grep به یک فایل استفاده کنید

اگر نیاز به ذخیره خروجی دستور grep دارید، می توانید این کار را در یک فایل جداگانه انجام دهید. ساده ترین راه این است که به دستور زیر مراجعه کنید:

grep query file > OutputFile.txt

به خاطر داشته باشید که نیازی به ایجاد فایل از قبل ندارید، زیرا با اجرای دستور بالا آن را به صورت خودکار ایجاد می کنید. این چیزی است که در خط فرمان به نظر می رسد:

چاپ الگوی فرمان grep با یک فایل txt مطابقت داردچاپ الگوی فرمان grep با یک فایل txt مطابقت دارد

همانطور که در مثال بالا مشاهده می شود، ما نیز از آن استفاده کرده ایم گربه برای چاپ محتویات فایل جدید ایجاد شده.

نتیجه

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

در این آموزش، نحو دستور grep را پوشش داده ایم و یاد گرفته ایم که چگونه:

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

ما همچنین برخی از پرچم‌های محبوب را ارائه کرده‌ایم که می‌توانید هنگام آزمایش دستور grep از آنها استفاده کنید. اگر نظر یا سوالی دارید، در بخش نظرات زیر با ما در میان بگذارید.