دستور grep یک ابزار ضروری برای هر مبتدی، تازه کار یا متخصص خط فرمان لینوکس است. این کار کار شما را بسیار ساده تر می کند و استفاده بسیار آسان است.
به عنوان یک تعریف کوتاه، grep یک باینری است که برای یک الگو در یک فایل جستجو می کند. فرمان grep را می توان با چندین روش سفارشی کرد.
مثال های پایه:
grep PATTERN FILE برای PATTERN دقیق (مورد حساس) در FILE داده شده
***
# grep فایل فایل با این مجوز حاوی پاراگراف های زیر است:دریافت یک نسخه از این نرم افزار و اسناد مرتبط فایل ها
** *
grep پشتیبانی از پارامترهای مختلفی را نیز می توان ترکیب کرد.
'grep -i' حساسیت را نادیده می گیرد:
***
# grep -i files copyright.doc
فایل ها : * فایلها : schedutils / ionice.c فایلها : schedutils / chrt.c فایلها : disk-utils / raw.cفایل با این مجوز دارای برچسب های زیر است:
گرفتن کپی از این نرم افزار و اسناد مرتبط فایل ها
***
grep -v یک نمونه از جستجوی را حذف می کند:
***
# grep -i files copyright.doc | grep -v schedutils
فایلها : * فایلها : disk-utils / raw.cفایلهای با این مجوز دارای برچسبهای زیر هستند: [19659008] بدست آوردن یک کپی از این نرم افزار و اسناد مرتبط فایل ها
***
این گفته می شود، بگذارید در موضوع خاص ما، با استفاده از grep با عبارات منظم، 19659002] عبارات منظم (regex) الگویی است که مجموعه ای از رشته ها را توصیف می کند. عبارات منظم از اپراتورهای خاصی برای ترکیب عبارات کوچکتر استفاده می کنند و مشابه با عبارات حساب شده ساخته می شوند.
گزینه های را بیاموزیم.
شخصیت ^ فقط یک کلمه را در ابتدای یک خط مطابقت می دهد، در حالی که شخصیت $ فقط مطابقت می کند یک کلمه در انتهای یک خط:
***
# grep -i "^ files" copyright.doc
فایلها : * فایلها : schedutils /ionice.c Files : schedutils / chrt.c فایلها : disk-utils / raw.c# grep -i "files $" copyright.doc
گرفتن یک کپی از این نرم افزار و اسناد مرتبط فایل ها
***
با استفاده از براکت ها، می توانید لیستی از کاراکترهایی را که از آن فقط یک در یک زمان استفاده می شود، برای الگوی جستجو دستور زیر برای هر واژه ای که حاوی تام، تایم یا تام است جستجو می کند.
***
# grep-i "t [aio] m" copyright.doc
2012 Andy Lu tom irski
فایلها: * / tim eutils *
***
ترکیب براکت ها و شخصیت می تواند به شما در حذف شخصیت از جستجو کمک کند. دستور زیر برای هر رشته ای که حاوی "le" و یک شخص قبل از "le" را جستجو می کند EXCEPT letter i:
***
# grep "[^i] le "copyright.doc
در سیستم های دبیان، متن متن عمومی عمومی گنو
LIA BLE برای هر گونه مستقیم، غیر مستقیم، تصادفی، خاص، معرفت OR
باید آکینو wle dgement را نمایش دهد:
***
همانطور که می بینید، کلمات "file" و "فایل ها" همسان نیستند.
دوره. هر یک از کاراکترها را از جمله فضای خالی مطابقت می دهد:
***
# grep -i 'file'. فایل : فایلها : schedutils / ionice.c فایلها : schedutils / chrt.c فایلها : disk-utils / raw.cپرونده های 19459011 با این مجوز دارای برچسبهای زیر است:
این پرونده تحت شرایط
مجددا توزیع می شود در /
یک کپی از این نرم افزار و اسناد مرتبط فایل
***
برای مطابقت با 2 حرف قبل از رشته، می توانید از آن استفاده کنید ..
***
# grep -i '..le' copyright.doc
فایل s: * پرونده s: schedutils / ionice.c پرونده s: schedutils / chrt.c پرونده s: disk-utils / raw.cفایل با این مجوز دارای برچسب های زیر است:
در سیستم های دبیان، شرکت mple متن عمومی عمومی GNU
BE LI ABLE برای هرگونه تقاضای، ضرر و زیان و یا دیگر مسئولیت، در
*** 19659002] اگر بخواهید به جای استفاده از آنها، رشته دقیق را جستجو کنید، این اپراتورها باید "فرار" شوند. با "فرار کرد"، منظورم استفاده از "در مقابل آنها " است. مثال:
grep "2." copyright.doc هر رشته حاوی "2" و یک شخص بعد از آن مطابقت دارد:
***
# grep "2. " copyright.doc
مجوز: BSD- 2- clause
2. توزیع مجدد در فرم باینری باید کپی رایت بالا را بازتولید کند
2) توزیع مجدد در فرم باینری باید این اعلامیه کپی رایت بالا را تولید کند،
2. توزیع مجدد در فرم باینری باید کپی رایت بالا
***
در حالی که grep "2 ." copyright.doc تنها با رشته ای حاوی "2" مطابقت دارد. :
***
# grep "2". copyright.doc
2. توزیع مجدد در فرم باینری باید کپی رایت بالا
2. توزیع مجدد در فرم باینری باید کپی رایت بالا را منتشر کند
***
بعضی از کلاس های از پیش تعیین شده شخصیت ها می توانند در ساخت یک فرمان grep شامل شوند.
اینها به ترتیب حروف الفبا [:alnum:]، [:alpha:]، [:cntrl:]، [:digit:]، [:graph:]، [:lower:]، [:print:]، [:punct:]، [:space:]، [:upper:]، و [:xdigit:]
برای مطابقت با تمام خطوط حاوی اعداد، [:digit:]] copyright.doc
# grep [[:digit:]] copyright.doc
مجوز: LGPL- 2 . 1 + Copyright: 2001 Andreas Dilger Copyright: 2008 - 2012 Karel Zak مجوز: LGPL- . 1 + Copyright: 2013 ، Red Hat، Inc."
شما باید از این کلاس ها در میان مجموعه دیگری از براکت ها استفاده کنید [[:digit:]] و نه [:digit:].
[:digit:] فقط بیان یک پیش تعریف شده برای [0123456789] است.
سرانجام، همانطور که در کتاب راهنمای grep بیان شد:
یک عبارت منظم میتواند به یکی از چندین اپراتور تکرار شود:
؟ مورد قبلی اختیاری است و بیشترین بار برابر است.
* مورد قبلی برابر صفر یا بیشتر برابر خواهد بود.
+ مورد قبلی یک یا چند بار مطابقت خواهد داشت.
{N} مورد قبلی دقیقا N بار مطابقت دارد
{N،} مورد قبلی برابر با n یا بیشتر بار است
{N، M} مورد قبلی برابر حداقل N بار، اما نه بیشتر از M بار
به عنوان مثال، با استفاده از oll * هر دو رشته شامل ol و oll
***
# grep oll * copyright.doc
text-utils / c o lc text-utils / c ol crt.c text-utils / c ol rm.c text-utils / c ol umn.c [19659100] فایل ها: libsmartc ol s / *فایل های برچسبگذاری شده با این مجوز شامل f oll به دلیل پاراگرافها:
اصلاح، مجاز است با توجه به f Oll در شرایط شرایط
***
با استفاده از grep و یو تصور تخیلی می تواند به شما در انجام کارهای پیچیده در عرض چند ثانیه کمک کند.