وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

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

0 8
زمان لازم برای مطالعه: 5 دقیقه


Grep (بیان منظم جهانی print) فرمان قدرتمندترین و پرکاربردترین لینوکس است command-line سودمندی با استفاده از Grep، می توانید با تعیین معیار جستجو، اطلاعات مفیدی را جستجو کنید. یک الگوی عبارت خاص را در یک فایل مشخص جستجو می کند. هنگامی که مطابقت پیدا می کند، تمام خطوط یک فایل را که با الگوی مشخص شده مطابقت دارد چاپ می کند. زمانی که مجبور هستید فایل های لاگ بزرگ را فیلتر کنید مفید است.

در این مقاله کاربرد grep utility را با مثال های مختلف توضیح خواهیم داد. ما از دبیان 10 برای توضیح دستورات و روش های ذکر شده در این مقاله استفاده خواهیم کرد.

در حال نصب Grep

Grep در اکثر توزیع های لینوکس نصب می شود. اما در صورتی که در سیستم شما وجود نداشته باشد، می توانید آن را با استفاده از روش زیر در ترمینال نصب کنید:

$ sudo apt-get نصب کنید grep

با استفاده از Grep

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

$ grep [options] الگو [FILE…]

جستجو برای فایل ها

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

$ ls | grep -من «رشته

به عنوان مثال، برای جستجوی نام فایلی که حاوی یک رشته «تست“، دستور این خواهد بود:

$ ls| grep -من تست

این دستور تمام فایل‌هایی را که شامل رشته هستند فهرست می‌کند.تست“.

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

یک رشته را در یک فایل جستجو کنید

برای جستجوی یک رشته در یک فایل خاص، می توانید از دستور زیر استفاده کنید:

$ grep نام فایل “string”.

به عنوان مثال، برای جستجوی یک رشته “تست” در فایلی به نام testfile1، از دستور زیر استفاده کرده ایم:

$ grep testfile “کارمند” 1

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

خروجی بالا جمله را از the برگردانده است testfile1 که شامل رشته “کارمند“.

یک رشته را در چندین فایل جستجو کنید

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

$ grep “string” filename1 filename2

به عنوان مثال، برای جستجوی رشته “employee” در دو فایل testfile1 و testfile2، از دستور زیر استفاده کرده ایم:

$ grep “کارمند” testfile1 testfile2

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

دستور بالا تمام خطوط حاوی رشته “employee” را از هر دو فایل testfile1 و testfile2 فهرست می کند.

همچنین می توانید از یک کاراکتر عام استفاده کنید اگر همه نام فایل ها با یک متن شروع شوند.

$ grep نام فایل “string”.*

مانند، اگر مثال بالا را که نام فایل های ما در آن بود، در نظر بگیریم testfile1 و testfile2 ، دستور این خواهد بود:

$ grep فایل آزمایشی “کارمند”.*

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

با نادیده گرفتن حروف رشته، یک رشته را در یک فایل جستجو کنید

بیشتر اوقات، زمانی که چیزی را با استفاده از grep جستجو می‌کنید اما خروجی دریافت نمی‌کنید، مواجه شده‌اید. این به دلیل عدم تطابق حروف در هنگام جستجوی یک رشته است. مانند مثال ما، اگر به اشتباه از «کارمند” بجای “کارمند“، به صفر برمی گردد زیرا فایل ما حاوی رشته ” است.کارمند” با حروف کوچک.

پیشنهاد می‌کنیم بخوانید:  Base64 رمزگذاری و رمزگشایی از خط فرمان

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

می‌توانید به grep بگویید که مورد رشته جستجو را با استفاده از پرچم –i بعد از grep به صورت زیر نادیده بگیرد:

$ grep –i نام فایل “string”.

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

با استفاده از پرچم –i، دستور جستجوی غیرحساس به حروف بزرگ و کوچک را انجام می‌دهد و تمام خطوط حاوی رشته را برمی‌گرداند.کارمند” در آن بدون در نظر گرفتن حروف به حروف بزرگ یا کوچک هستند.

با استفاده از عبارت منظم جستجو کنید

اگر به درستی استفاده شود، عبارت منظم یک ویژگی بسیار موثر در grep است. با دستور Grep می‌توانید یک عبارت منظم را با یک کلمه کلیدی شروع و پایان تعریف کنید. با این کار نیازی به تایپ کل خط با دستور grep نخواهید داشت. برای این منظور می توان از نحو زیر استفاده کرد.

$ grep کلمه کلیدی شروع*endingKeyword” نام فایل

به عنوان مثال، برای جستجوی خطی در فایلی به نام testfile1 که با رشته “this” شروع و با رشته “data” ختم می شود، از دستور زیر استفاده کرده ایم:

$ grep “این.*داده” testfile1

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

خواهد شد print کل خط از testfile1 حاوی عبارت (کلید کلیدی شروع “this” و کلمه کلیدی پایانی “داده”).

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

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

$ grep <ن> نام فایل “string”.

پس از تطبیق رشته در فایل مشخص شده از جمله رشته منطبق، N تعداد خط را نمایش می دهد.

به عنوان مثال، این فایل نمونه ما به نام است testfile2.

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

دستور زیر خط منطبق با رشته ” را خروجی می دهد.کارمند“، به همراه 2 خط بعد از آن.

$ grep2 –i “کارمند” testfile2

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

به طور مشابه، برای نمایش N تعداد خط قبل از رشته مطابق در یک فایل خاص، از نحو زیر استفاده کنید:

$ grep <ن> نام فایل “string”.

برای نمایش N تعداد خط در اطراف رشته در یک فایل خاص، از دستور زیر استفاده کنید:

$ grep -سی <ن> نام فایل “string”.

برجسته کردن جستجو

Grep به طور پیش فرض print خطوط منطبق است اما نشان نمی دهد که کدام بخش از خط مطابقت دارد. اگر از گزینه –color با grep استفاده کنید، نشان می دهد که رشته های ماشینکاری در فایل شما کجا ظاهر می شوند. Grep به طور پیش فرض از رنگ قرمز برای برجسته کردن استفاده می کند.

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

برای این منظور می توان از نحو زیر استفاده کرد:

$ grep نام فایل “string”. –رنگ

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

شمارش تعداد مسابقات

اگر می خواهید شمارش کنید که یک کلمه خاص چند بار در یک فایل خاص ظاهر می شود، می توانید از گزینه grep with –c استفاده کنید. فقط تعداد مسابقات را به جای خود مسابقات برمی گرداند. برای این منظور می توان از نحو زیر استفاده کرد:

$ grep –c نام فایل “string”.

این فایل نمونه ما به نظر می رسد:

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

در زیر نمونه ای از دستوری است که تعداد دفعات کلمه را برمی گرداند فایل در فایلی به نام ظاهر شد testfile3.

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

جستجوی معکوس

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

$ grep –v نام فایل “string”.

به عنوان مثال، برای نمایش تمام خطوط در یک فایل testfile3 که در آنها کلمه اکانت وجود ندارد، از دستور زیر استفاده کرده ایم:

$ grep –v «حساب» testfile3

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

استفاده از Grep با دستورات دیگر

همچنین می توان از Grep برای فیلتر کردن نتیجه مورد نیاز از خروجی دستورات مختلف استفاده کرد. به عنوان مثال، از “apt-installed list” خروجی فرمان، شما می خواهید فقط بسته هایی را که به طور خودکار نصب شده اند پیدا کنید، می توانید نتیجه را با استفاده از grep به صورت زیر فیلتر کنید:

$ apt –نصب شده است فهرست | grep خودکار

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

به طور مشابه، lscpu اطلاعات دقیقی در مورد CPU ارائه می دهد. اگر فقط به اطلاعات مربوط به معماری CPU علاقه مند هستید، می توانید با استفاده از دستور زیر آن را فیلتر کنید:

$ lscpu | grep معماری

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

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

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 14:29:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید