گاهی اوقات کاربران با نیاز به جستجوی اطلاعات خاص در هر فایل مواجه می شوند. اغلب اسناد پیکربندی و سایر داده های حجمی شامل تعداد زیادی خطوط است، بنابراین دستیابی داده های لازم غیرممکن است. سپس یکی از دستورات ساخته شده در سیستم عامل های لینوکس به نجات می رسد که به شما این امکان را می دهد که خطوط را فقط چند ثانیه پیدا کنید.
محتوا
با توجه به تفاوت های موجود در توزیع های لینوکس، در این مورد آنها هیچ نقش ایفا نمی کنند، زیرا دستور grep به شما علاقه مند است به طور پیش فرض در اکثر مجموعه ها در دسترس است و به طور دقیق مورد استفاده قرار می گیرد. امروز ما دوست داریم به بحث در مورد نه تنها اثر grep ، بلکه بحث های اصلی که می تواند روش جستجو را به طور قابل توجهی ساده کند.
همچنین ببینید: در حال جستجو برای فایل ها در لینوکس
تمام اقدامات بعدی از طریق کنسول استاندارد انجام می شود، همچنین به شما اجازه می دهد تا فایل ها را تنها با مشخص کردن مسیر کامل به آنها، یا اگر ترمینال از دایرکتوری مورد نیاز راه اندازی شده است، باز کنید. شما می توانید پوشه پدر و مادر یک پرونده را بیابید و به آن در کنسول مانند این بروید:
cd /home/user/folder
به دایرکتوری بروید، جایی که کاربر نام کاربری است و پوشه نام پوشه است. اگر می خواهید محتوای کامل را مشاهده کنید، از cat + название файла
استفاده کنید. دستورالعمل های دقیق در مورد نحوه کار با این تیم در مقاله دیگر ما در لینک زیر یافت می شود.
جزئیات بیشتر: مثال دستور لینوکس گربه
با تشکر از مراحل فوق، می توانید از grep استفاده کنید ، در دایرکتوری راست، بدون مشخص کردن مسیر کامل به فایل.
قبل از بررسی تمامی استدلال های موجود، مهم است که جستجوی معمولی توسط محتوا را ذکر کنید. در آن لحظات مفید خواهد بود زمانی که شما نیاز به پیدا کردن یک بازی ساده با ارزش و نمایش تمام خطوط مربوطه.
grep word testfile
وارد کنید، جایی که کلمه اطلاعاتی است که شما دنبال آن هستید و testfile نام فایل است. هنگام انجام جستجوی خارج از پوشه، مسیر کامل را به عنوان /home/user/folder/filename
. پس از ورود به فرمان، کلید Enter را فشار دهید. grep -i "word" testfile
تایپ grep -i "word" testfile
. گاهی اوقات کاربران نیاز به پیدا کردن نه تنها یک رکورد دقیق در ردیفها دارند، بلکه همچنین باید اطلاعاتی را که بعد از آنها به دست می آیند پیدا کنند، مثلا هنگام گزارش یک خطای خاص. سپس راه حل صحیح برای اعمال ویژگی ها است. grep -A3 "word" testfile
در کنسول تایپ grep -A3 "word" testfile
تا سه خط زیر را در نتیجه بعد از مسابقه وارد کنید. شما می توانید نوشتن -A4
، سپس چهار خط اسیر خواهد شد، هیچ محدودیتی وجود دارد.
اگر در عوض -A
شما از استدلال -B + количество строк
، نتیجه داده هایی است که تا نقطه ورود می باشند.
استدلال -С
، به نوبه خود، خطوط اطراف یک کلمه کلیدی را ضبط می کند.
در زیر میتوانید نمونههایی از انتساب استدلالهای مشخص را ببینید. لطفا توجه داشته باشید که باید پرونده را در نظر بگیرید و نقل قول های دوگانه را بدهید.
grep -B3 "word" testfile
grep -C3 "word" testfile
نیاز به تعریف یک کلمه کلیدی که در ابتدای یا انتهای خط است اغلب در طول کار با فایل های تنظیمات رخ می دهد، که هر خط مسئول یک پارامتر است. برای دیدن ورود دقیق در ابتدا، شما باید grep "^word" testfile
. علامت ^ مسئول استفاده از این گزینه است.
جستجو برای محتوا در پایان خطوط تقریبا به همین شکل اتفاق می افتد، فقط در نقل قول ها باید علامت $ را اضافه کنید، و دستور به صورت زیر است: grep "word$" testfile
.
هنگام جستجو برای مقادیر دلخواه، کاربر همیشه اطلاعاتی درباره کلمه دقیق موجود در رشته ندارد. سپس روش جستجو را می توان از طریق اعداد انجام داد که گاهی اوقات کار را بسیار ساده می کند. فقط لازم است که از فرمان در فرم grep "[0-7]" testfile
، جایی که "[0-7]" محدوده مقادیر است و testfile نام فایل اسکن شده است.
اسکن تمام اشیاء در همان پوشه به صورت بازگشتی نامیده می شود. کاربر نیاز به اعمال تنها یک استدلال دارد که تمام فایل های موجود در پوشه را تجزیه و تحلیل می کند و خطوط مناسب و مکان آنها را نمایش می دهد. شما باید grep -r "word" /home/user/folder
، جایی که / home / user / folder مسیر دایرکتوری برای اسکن است.
آبی محل ذخیره سازی فایل را نمایش می دهد، و اگر شما می خواهید خطوط را بدون این اطلاعات دریافت کنید، یک استدلال دیگر را برای ایجاد دستور این grep -h -r "word" + путь к папке
.
در ابتدای مقاله ما در مورد جستجوی کلمه معمول صحبت کردیم. با این وجود، با استفاده از این روش، ترکیبات اضافی در نتایج نشان داده می شوند. به عنوان مثال، کلمه User را پیدا می کنید، اما این دستور همچنین کاربر 123 ، کاربر رمز عبور و سایر بازی ها را نمایش می دهد، اگر وجود داشته باشد. برای جلوگیری از این نتیجه، پارامتر -w
( grep -w "word" + имя файла или его расположение
) را اختصاص دهید.
این گزینه همچنین زمانی اجرا می شود که شما نیاز دارید یک کلمه کلیدی دقیق را جستجو کنید. در این مورد، تایپ کنید egrep -w 'word1|word2' testifile
. لطفا توجه داشته باشید که در این حالت نامه e به grep اضافه می شود و نقل قول های تک قرار می گیرند.
ابزار مورد نظر قادر است نه تنها برای پیدا کردن کلمات در فایل ها، بلکه همچنین برای نمایش خطوطی که هیچ مقدار مشخص شده توسط کاربر وجود ندارد. سپس، قبل از ورود به مقدار کلیدی و فایل، -v
اضافه شده است. با تشکر از او، هنگامی که فرمان را فعال می کنید، فقط اطلاعات مرتبط را مشاهده خواهید کرد.
دستور زبان grep چند استدلال دیگر را گردآوری کرد که به طور خلاصه توضیح داده می شود:
-I
- فقط نام فایل هایی را که با معیارهای جستجو مطابقت دارند نشان می دهد. -s
- غیر فعال کردن اعلان ها در مورد اشتباهات؛ -n
- نمایش شماره خط در فایل؛ -b
- شماره بلوک قبل از خط نمایش داده شود. هیچ چیز مانع از استفاده از چندین استدلال برای یک یافته نمی شود، فقط آنها را با یک فضای جداگانه وارد کنید، و فراموش نکنید که حساب را به حساب آورید.
امروز، دستورالعمل grep کاملا در اختیار توزیع لینوکس قرار گرفته است. این یکی از استاندارد و اغلب استفاده می شود. شما می توانید در مورد سایر ابزارهای محبوب و نحو آنها در مواد جداگانه خود را در لینک زیر مطالعه کنید.
همچنین ببینید: دستورات اغلب مورد استفاده در ترمینال لینوکس