Команда Линук греп се користи као метода за филтрирање уноса. ГРЕП означава Глобал Регулар Екпрессион Принтер и због тога, како би је ефикасно искористили, требали бисте имати мало знања о регуларним изразима.
У овом чланку ћете научити низ примера који ће вам помоћи да разумете греп наредбу.
01 од 09Како тражити низ у фајлу користећи ГРЕП

Замислите да имате текстуалну датотеку звану књиге са следећим насловима за дјецу:
- Робин Худ
- Црвенкапа
- Петар Пан
- Златокоса и три медведа
- Снежана и седам патуљака
- Пинноцхио
- Мачка у шеширу
- Три прасета
- Груффало
- Чарли и фабрика чоколаде
Да бисте све књиге пронашли речима "Тхе" у наслову, користићете следећу синтаксу:
греп КњигеСледећи резултати ће бити враћени:
- Златокоса и три медведа
- Снежана и седам патуљака
- Мачка у шеширу
- Три прасета
- Груффало
- Чарли и фабрика чоколаде
У сваком случају, реч "Тхе" ће бити означена.
Претраживање је осјетљиво на велика и мала слова, па ако је један од наслова имао "уместо" Тхе "онда не би био враћен.
Да игноришете случај, можете додати следећи прекидач:
греп књиге - играње игараТакође можете користити и -и прекидач на следећи начин:
Наставите читати даље
02 од 09Потражите стринг у датотеци користећи знакове
Греп наредба је веома моћна. За филтрирање резултата можете користити мноштво техника усклађивања образаца.
У овом примеру ћу вам показати како да потражите стринг у фајлу користећи џокерове.
Замислите да имате датотеку названу места са следећим називима шкотског места:
абердеенабериствитхаберлоуринверуриеИнвернессневбургхнови јеленнови галловаигласговединбургхАко желите да пронађете сва места са инвер у имену користите следећу синтаксу:
греп инвер * местаАстериск (*) вилдцард означава 0 или више. Дакле, ако имате место назване инвер или место назване Инвернесс, онда ће оба бити враћена.
Још један џокер који можете користити је период (.). Ово можете користити за појединачно писмо.
греп инвер.р местаГорња команда би пронашла места која се називају инверурие и инверарије, али не би могла наћи инвереерие јер може бити само један џокер између два р-а која се означава једном временом.
Џемпери за период су корисни, али то може проузроковати проблеме ако их имате као део текста који тражите.
На пример погледајте ову листу имена домена
- линук.абоут.цом
- пцсуппорт.абоут.цом
- мп3.абоут.цом
- минецрафт.абоут.цом
- андроидгамес.абоут.цом
- нетфорбегиннерс.абоут.цом
- еверидаилинукусер.цом
- гоогле.цо.ук
- гоогле.ау
- дирецт.гов.ук
Да бисте пронашли све о .цом, можете претраживати само следећу синтаксу:
греп * абоут * домаиннамесГорња команда би пала ако листа садржи следеће име у њему:
- еверидаилинукусер.цом/абоут.хтмл
Стога, можете покушати следећу синтаксу:
греп * абоут.цом домаиннамесОво би деловало ок, осим ако није постојао домен са слиједећим именом:
абоутицом.цомДа бисте заиста тражили појам абоут.цом, требало би да избегнете тачку на следећи начин:
греп * о .цом доменским именимаКоначна џокарта која ће вам показати је знак питања која означава нулу или један карактер.
На пример:
греп? бер плаценамесГорња команда ће вратити абердеен, абериствит или чак бервицк.
Наставите читати даље
03 од 09Тражите стрингове на почетку и крају линије Користећи греп
Карат (^) и долар ($) симбол омогућавају вам да претражујете обрасце на почетку и крају линија.
Замислите да имате датотеку под називом фудбал са следећим тимским именима:
- Блекпул
- Ливерпоол
- Манчестер Сити
- Леицестер Цити
- Манчестер Јунајтед
- Невцастле Унитед
- ФЦ Унитед Оф Манцхестер
Ако сте желели да пронађете све екипе које су почеле са Манцхестером, користићете следећу синтаксу:
греп ^ Манцхестер тимаГорња команда би вратила Манцхестер Цити и Манцхестер Унитед, али не и ФЦ Унитед Оф Манцхестер.
Алтернативно, можете наћи све тимове који се завршавају са Унитед користећи следећу синтаксу:
греп Унитед $ тимоваГорња команда би се вратила у Манцхестер Унитед и Невцастле Унитед, али не и на ФЦ Унитед оф Манцхестер.
04 од 09Бројање утакмица помоћу греп
Ако не желите да вратите стварне линије које одговарају шаблону помоћу греп-а, али само желите да сазнате колико постоје, можете користити следећу синтаксу:
греп -ц образац инпутфилеАко је образац двапут упарен онда ће број 2 бити враћен.
Наставите читати даље
05 од 09Проналажење свих услова који се не подударају користећи греп
Замислите да имате попис имена мјеста са земљама наведеним на следећи начин:
- абердеен Шкотска
- гласгов Сцотланд
- Ливерпул Енглеска
- цолвин залив
- Лондон, Енглеска
Можда сте приметили да колевски заљев нема земљу која је повезана са њом.
Да бисте потражили сва места са државом, могли бисте да користите следећу синтаксу:
греп земљишта $Повратни резултати би били сва места осим колевског залива.
Ово очигледно ради само за места која се завршавају на копну (једва научна).
Можете одабрати избор помоћу следеће синтаксе:
греп -в земља $ местаОво би могло да пронађе сва места која се нису завршила земљом.
06 од 09Како пронаћи празне линије у фајловима помоћу греп-а
Замислите да имате улазну датотеку коју користи апликација треће стране која зауставља читање датотеке када пронађе празну линију на следећи начин:
- абердеен сцотланд
- Инвернесс Сцотланд
- Ливерпоол Енглеска
- цолвин баи валес
Када се апликација стигне до линије након Ливерпоола, престати да чита значење у потпуности је пропустено.
Можете користити греп да тражи празне линије са следећом синтаксом:
греп ^ $ местаНажалост ово није нарочито корисно, јер само враћа празне линије.
Наравно да можете да бројите број празних линија као проверу да ли је датотека важећа на следећи начин:
греп -ц ^ $ местаБило би корисније знати бројеве линија који имају празну линију тако да их можете замијенити. То можете учинити помоћу следеће наредбе:
греп -н ^ $ местаНаставите читати даље
07 од 09Како тражити жице горњих и нижих слова користећи греп
Коришћењем греп-а можете одредити које линије у фајлу имају велике словне знакове користећи сљедећу синтаксу:
греп 'А-З' филенамеКвадратне заграде омогућавају вам да одредите опсег карактера. У горњим примјерима одговара сваки знак који је између А и З.
Према томе, да бисте се подударали са малим словима, можете користити следећу синтаксу:
греп 'а-з' филенамеАко желите да одговарате само словима а не нумеричким или другим симболима можете користити следећу синтаксу:
греп 'а-зА-З' филенамеМожете то учинити и са бројевима како слиједи:
греп '0-9' филенаме 08 од 09Тражење понављања шаблона Користећи греп
Можете да користите закривљене заграде {} да бисте потражили понављајући образац.
Замислите да имате датотеку са телефонским бројевима како слиједи:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- к44-1234
Знате да први део броја треба да буде три цифре и желите да пронађете линије које не одговарају овом шаблону.
Из претходног примера знате да 0-9 враћа све бројеве у датотеку.
У овом случају желимо да линије које почињу са три броја следи цртица (-). То можете урадити с сљедећом синтаксом:
греп "^ 0-9 0-9 0-9 -" бројевиКао што знамо из претходних примера, карат (^) значи да линија мора почети са следећим образцем.
0-9 тражи било који број између 0 и 9. Како је ово укључено три пута, одговара 3 броју. Коначно, постоји веза за означавање да веза мора да успије три бројеве.
Коришћењем увртаних заграда можете учинити мању претрагу на следећи начин:
греп "^ 0-9 {3 } -" бројевиКоса избегава {конзола тако да функционира као део регуларног израза, али у суштини оно што ово говори је 0-9 {3} што значи било који број између 0 и 9 три пута.
Закривљене конзоле се могу користити и на следећи начин:
{5,10}{5,}{5,10} значи да се тражени карактер мора поновити најмање 5 пута, али не више од 10 док {5,} значи да се карактер мора поновити најмање 5 пута, али може бити више од тога.
Наставите читати даље
09 од 09Коришћење излаза из других команди Користећи греп
До сада смо погледали узорак подударања унутар појединачних датотека, али греп може користити излаз из других команди као улаз за подударање узорака.
Велики пример овога је коришћење команде пс који садржи активне процесе.
На пример, покрените следећу команду:
пс -ефСви процеси који се покрећу на вашем систему ће бити приказани.
Можете користити греп да потражите одређени поступак за покретање на следећи начин:
пс -еф | греп фирефокРезиме
Греп наредба је основна Линук наредба и она је вредна учења јер ће вам олакшати живот приликом претраживања датотека и процеса приликом кориштења терминала.













