از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
دستور Grep در لینوکس
سرفصلهای مطلب
Grep (بیان منظم جهانی print) فرمان قدرتمندترین و پرکاربردترین لینوکس است command-line سودمندی با استفاده از Grep، می توانید با تعیین معیار جستجو، اطلاعات مفیدی را جستجو کنید. یک الگوی عبارت خاص را در یک فایل مشخص جستجو می کند. هنگامی که مطابقت پیدا می کند، تمام خطوط یک فایل را که با الگوی مشخص شده مطابقت دارد چاپ می کند. زمانی که مجبور هستید فایل های لاگ بزرگ را فیلتر کنید مفید است.
در این مقاله کاربرد grep utility را با مثال های مختلف توضیح خواهیم داد. ما از دبیان 10 برای توضیح دستورات و روش های ذکر شده در این مقاله استفاده خواهیم کرد.
در حال نصب Grep
Grep در اکثر توزیع های لینوکس نصب می شود. اما در صورتی که در سیستم شما وجود نداشته باشد، می توانید آن را با استفاده از روش زیر در ترمینال نصب کنید:
با استفاده از Grep
در اینجا نحو اصلی دستور grep آمده است. با grep شروع می شود و سپس برخی از گزینه ها و معیارهای جستجو و سپس با نام فایل به پایان می رسد.
جستجو برای فایل ها
برای جستجوی نام فایل در دایرکتوری که دارای یک رشته خاص در آن است، می توانید از grep به روش زیر استفاده کنید:
به عنوان مثال، برای جستجوی نام فایلی که حاوی یک رشته «تست“، دستور این خواهد بود:
این دستور تمام فایلهایی را که شامل رشته هستند فهرست میکند.تست“.
یک رشته را در یک فایل جستجو کنید
برای جستجوی یک رشته در یک فایل خاص، می توانید از دستور زیر استفاده کنید:
به عنوان مثال، برای جستجوی یک رشته “تست” در فایلی به نام testfile1، از دستور زیر استفاده کرده ایم:
خروجی بالا جمله را از the برگردانده است testfile1 که شامل رشته “کارمند“.
یک رشته را در چندین فایل جستجو کنید
برای جستجوی یک رشته در چندین فایل، می توانید از دستور زیر استفاده کنید:
به عنوان مثال، برای جستجوی رشته “employee” در دو فایل testfile1 و testfile2، از دستور زیر استفاده کرده ایم:
دستور بالا تمام خطوط حاوی رشته “employee” را از هر دو فایل testfile1 و testfile2 فهرست می کند.
همچنین می توانید از یک کاراکتر عام استفاده کنید اگر همه نام فایل ها با یک متن شروع شوند.
مانند، اگر مثال بالا را که نام فایل های ما در آن بود، در نظر بگیریم testfile1 و testfile2 ، دستور این خواهد بود:
با نادیده گرفتن حروف رشته، یک رشته را در یک فایل جستجو کنید
بیشتر اوقات، زمانی که چیزی را با استفاده از grep جستجو میکنید اما خروجی دریافت نمیکنید، مواجه شدهاید. این به دلیل عدم تطابق حروف در هنگام جستجوی یک رشته است. مانند مثال ما، اگر به اشتباه از «کارمند” بجای “کارمند“، به صفر برمی گردد زیرا فایل ما حاوی رشته ” است.کارمند” با حروف کوچک.
میتوانید به grep بگویید که مورد رشته جستجو را با استفاده از پرچم –i بعد از grep به صورت زیر نادیده بگیرد:
با استفاده از پرچم –i، دستور جستجوی غیرحساس به حروف بزرگ و کوچک را انجام میدهد و تمام خطوط حاوی رشته را برمیگرداند.کارمند” در آن بدون در نظر گرفتن حروف به حروف بزرگ یا کوچک هستند.
با استفاده از عبارت منظم جستجو کنید
اگر به درستی استفاده شود، عبارت منظم یک ویژگی بسیار موثر در grep است. با دستور Grep میتوانید یک عبارت منظم را با یک کلمه کلیدی شروع و پایان تعریف کنید. با این کار نیازی به تایپ کل خط با دستور grep نخواهید داشت. برای این منظور می توان از نحو زیر استفاده کرد.
به عنوان مثال، برای جستجوی خطی در فایلی به نام testfile1 که با رشته “this” شروع و با رشته “data” ختم می شود، از دستور زیر استفاده کرده ایم:
خواهد شد print کل خط از testfile1 حاوی عبارت (کلید کلیدی شروع “this” و کلمه کلیدی پایانی “داده”).
تعداد مشخصی از خطوط را بعد از/قبل از رشته جستجو چاپ کنید
همچنین می توانید تعداد مشخصی از خطوط را در یک فایل قبل/بعد از تطابق رشته به همراه خود رشته منطبق نمایش دهید. برای این منظور می توان از نحو زیر استفاده کرد:
پس از تطبیق رشته در فایل مشخص شده از جمله رشته منطبق، N تعداد خط را نمایش می دهد.
به عنوان مثال، این فایل نمونه ما به نام است testfile2.
دستور زیر خط منطبق با رشته ” را خروجی می دهد.کارمند“، به همراه 2 خط بعد از آن.
به طور مشابه، برای نمایش N تعداد خط قبل از رشته مطابق در یک فایل خاص، از نحو زیر استفاده کنید:
برای نمایش N تعداد خط در اطراف رشته در یک فایل خاص، از دستور زیر استفاده کنید:
برجسته کردن جستجو
Grep به طور پیش فرض print خطوط منطبق است اما نشان نمی دهد که کدام بخش از خط مطابقت دارد. اگر از گزینه –color با grep استفاده کنید، نشان می دهد که رشته های ماشینکاری در فایل شما کجا ظاهر می شوند. Grep به طور پیش فرض از رنگ قرمز برای برجسته کردن استفاده می کند.
برای این منظور می توان از نحو زیر استفاده کرد:
شمارش تعداد مسابقات
اگر می خواهید شمارش کنید که یک کلمه خاص چند بار در یک فایل خاص ظاهر می شود، می توانید از گزینه grep with –c استفاده کنید. فقط تعداد مسابقات را به جای خود مسابقات برمی گرداند. برای این منظور می توان از نحو زیر استفاده کرد:
این فایل نمونه ما به نظر می رسد:
در زیر نمونه ای از دستوری است که تعداد دفعات کلمه را برمی گرداند فایل در فایلی به نام ظاهر شد testfile3.
جستجوی معکوس
گاهی اوقات، شما می خواهید یک جستجوی معکوس انجام دهید که تمام خطوط را به جز خطوطی که با ورودی مطابقت دارند نمایش می دهد. برای انجام این کار، به سادگی از پرچم –v و به دنبال آن grep استفاده کنید:
به عنوان مثال، برای نمایش تمام خطوط در یک فایل testfile3 که در آنها کلمه اکانت وجود ندارد، از دستور زیر استفاده کرده ایم:
استفاده از Grep با دستورات دیگر
همچنین می توان از Grep برای فیلتر کردن نتیجه مورد نیاز از خروجی دستورات مختلف استفاده کرد. به عنوان مثال، از “apt-installed list” خروجی فرمان، شما می خواهید فقط بسته هایی را که به طور خودکار نصب شده اند پیدا کنید، می توانید نتیجه را با استفاده از grep به صورت زیر فیلتر کنید:
به طور مشابه، lscpu اطلاعات دقیقی در مورد CPU ارائه می دهد. اگر فقط به اطلاعات مربوط به معماری CPU علاقه مند هستید، می توانید با استفاده از دستور زیر آن را فیلتر کنید:
در این مقاله نمونه هایی را بیان کرده ایم که به شما در درک دستورات grep و کاربرد آن در شرایط مختلف کمک می کند. داشتن یک چنگال قوی روی دستور grep می تواند در زمان زیادی صرفه جویی کند اگر نیاز به مشاهده فایل های پیکربندی یا لاگ بزرگ و بررسی اطلاعات مفید از طریق آنها داشته باشید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 14:29:03