греп

30 Греп примери

30 Греп примери
Можете пронаћи греп присутан дубоко у животињском мозгу Уника и њему сличних оперативних система. То је основни програм који се користи за подударање образаца и написан је 70-их година заједно са остатком УНИКС алата који знамо и волимо (или мрзимо).

Иако је учење о формалним језицима и регуларним изразима узбудљива тема. Учење греп-а има много више од регекса. Да бисте започели с тим и да бисте видели лепоту и елеганцију грепа, прво морате видети неколико примера из стварног света.

Примери који су вам згодни и чине вам живот мало лакшим. Ево 30 таквих греп уобичајених случајева и опција.

1. пс аук | греп

У пс аук-у су наведени сви процеси и њима придружени пиди. Али често је ова листа предугачка да би је човек могао прегледати. Преусмеравањем излаза на греп наредбу можете навести процесе који се изводе са врло специфичном апликацијом на уму. На пример може бити ссхд или нгинк или хттпд.

# пс помоћни | греп ссхд
корен 400 0.0 0.2 69944 5624 ?       Сс 17:47 0:00 / уср / сбин / ссхд -Д
корен 1076 0.2 0.3 95204 6816 ?       Сс 18:29 0:00 ссхд: роот @ птс / 0
корен 1093 0.0 0.0 12784 932 птс / 0 С + 18:29 0:00 греп ссхд

2. Греппинг ваше ИП адресе

У већини оперативних система можете навести све своје мрежне интерфејсе и ИП који је том интерфејсу додељен помоћу команде ифцонфиг или ип аддр. Обе ове наредбе ће дати пуно додатних информација. Али ако желите да одштампате само ИП адресу (рецимо за скрипте љуске), онда можете да користите наредбу испод:

$ ип аддр | греп инет | авк 'принт $ 2; '
$ ип аддр | греп -в инет | авк 'принт $ 2; '# За линије са само инетом, а не инет6 (ИПв6)

Команда ип аддр добија све детаље (укључујући ИП адресе), а затим се пребацује на другу наредбу греп инет која избацује само редове са инетом у њима. Ово се затим пребацује у авк принт изјаву која исписује другу реч у сваком реду (поједностављено речено).

П.С: То можете учинити и без грепа ако знате авк добро знате.

3. Гледајући неуспеле покушаје ССХ

Ако имате Интернет сервер са јавном ИП адресом, он ће се непрестано бомбардирати ССХ покушајима, а ако омогућите корисницима ССХ приступ заснован на лозинци (смерница коју не бих препоручио), можете видети све такве неуспеле покушаје помоћу следећа греп наредба:

# цат / вар / лог / аутх.лог | греп „Фаил“
Узорак стављен
5. децембра 16:20:03 дебиан ссхд [509]: Неуспешна лозинка за роот од 192.168.0.100 порт 52374 ссх2
5. децембра 16:20:07 дебиан ссхд [509]: Неуспешна лозинка за роот од 192.168.0.100 порт 52374 ссх2
5. децембра 16:20:11 дебиан ссхд [509]: Неуспешна лозинка за роот из 192.168.0.100 порт 52374 ссх2

4. Цевовод Греп до Уник

Понекад ће греп дати пуно информација. У горњем примеру, појединачна ИП адреса можда покушава да уђе у ваш систем. У већини случајева постоји само неколицина таквих прекршајних ИП адреса које требате да јединствено идентификујете и ставите на црну листу.

# цат / вар / лог / аутх.лог | греп "Фаил" | уник -ф 3

Команда уник треба да штампа само јединствене линије. Уник -ф 3 прескаче прва три поља (да би се превиделе временске ознаке које се никада не понављају), а затим почиње да тражи јединствене линије.

5. Греппинг за поруке о грешкама

Употреба Грепа за евиденцију приступа и грешака није ограничена само на ССХ. Веб сервери (попут Нгинк-а) евидентирају грешке и евидентирају приступ детаљно. Ако поставите скрипте за надзор које вам шаљу упозорења када греп „404“ врати нову вредност. То може бити врло корисно.

# греп -в "404" / вар / ввв / нгинк / аццесс.Пријава
192.168.0.100 - - [06 / Дец / 2018: 02: 20: 29 +0530] „ГЕТ / фавицон.ицо ХТТП / 1.1 "404 200
"хттп: // 192.168.0.102 / "" Мозилла / 5.0 (Виндовс НТ 10.0; Вин64; к64)
АпплеВебКит / 537.36 (КХТМЛ, попут Гецко) Цхроме / 70.0.3538.110 Сафари / 537.36 "
192.168.0.101 - - [06 / Дец / 2018: 02: 45: 16 +0530] „ГЕТ / фавицон.ицо ХТТП / 1.1 "404 143
"хттп: // 192.168.0.102 / "" Мозилла / 5.0 (иПад; ЦПУ ОС 12_1 попут Мац ОС Кс)
АпплеВебКит / 605.1.15 (КХТМЛ, попут Гецко) Верзија / 12.0 Мобиле / 15Е148 Сафари / 604.1 "

Редовни израз можда није „404“, већ неко друго филтрирање регуларног израза само за мобилне клијенте или само за Аппле уређаје који гледају веб страницу. То вам омогућава дубљи увид у учинак ваше апликације.

6. Списак пакета

За системе засноване на Дебиану, дпкг -л наводи све пакете инсталиране на вашем систему. Можете то пренети у греп наредбу да бисте тражили пакете који припадају одређеној апликацији. На пример:

# дпкг -л | греп "вим"

7. греп -в филеНамес

Да набројим све редове који немој садрже дати образац, користите заставицу -в. У основи је супротно од уобичајене греп наредбе.

8. греп -л

Наводи све датотеке које садрже бар једну појаву испорученог узорка. Ово је корисно када тражите образац унутар директоријума са више датотека. Исписује само име датотеке, а не одређену линију са узорком.

9. Опција једне речи -в

$ греп -в филеНамес

Ознака -в говори грепу да задати образац тражи као целу реч, а не само као подниз низа. На пример, раније смо се грепали за ИП адресу и образац инет штампао редове са обе инет и инет6 наводећи и ИПв4 и ИПв6 адресе. Али ако смо користили -в означавамо само линије са инет као што је реч којој претходе и иза ње следе размаци ваљано подударање.

10. Проширени редовни израз

Често ћете открити да су регуларни изрази који потичу из Грепа помало ограничавајући. У већини скрипти и упутстава наћи ћете употребу заставице -Е и то ће вам омогућити да унесете образац у оно што се назива Проширени режим.

Ево наредби греп и греп -Е за тражење речи Суперман и Спидерман.

$ греп "\ (Супер | Спидер \) ман" текст
$ греп -Е "(Супер | Спидер) ман" текст

Као што видите, проширену верзију је много лакше читати.

11. Греп за ваше контејнере

Ако на хосту имате велику групу контејнера, можете их грепнути према имену слике, статусу, портовима које излажу и многим другим атрибутима. На пример,

$ доцкер пс | греп [имагеНаме]

12. Греп за ваше махуне

Док смо на теми контејнера. Кубернетес често имају тенденцију да покрећу вишеструке махуне под датом применом. Иако свака махуна има јединствено име, у датом простору имена они обично почињу са именом примене. Можемо то искористити и навести све махуне повезане са датим размештањем.

$ кубецтл добити махуне | греп

13. Греп за велике податке

Анализа такозваних „великих података“ често укључује једноставно претраживање, сортирање и бројање образаца у датом скупу података. УНИКС услужни програми ниског нивоа попут греп, уник, вц су посебно добри у томе. Ово блог пост приказује леп пример задатка извршеног у само неколико секунди употребом греп-а и других Уник-ових услужних програма док је Хадооп-у требало готово пола сата.

На пример, ово скуп података је преко 1.Величина 7 ГБ. Садржи информације о мноштву шаховских утакмица, укључујући потезе, ко је победио итд. Занимају нас само резултати па покрећемо следећу наредбу:

$ греп "Резултат" миллионбасе-2.22.пгн | сортирај | уник -ц
221 [резултат "*"]
653728 [Резултат "0-1"]
852305 [Резултат "1-0"]
690934 [Резултат "1 / 2-1 / 2"]

Ово је трајало око 15 секунди на четворогодишњем процесору са 2 језгра / 4 нити. Дакле, следећи пут када будете решавали проблем „великих података“. Размислите можете ли уместо тога користити греп.

14. греп -цолор = ауто

Ова опција омогућава греп да истакне образац унутар линије у којој је пронађен.

15. греп -и

Подударање греп обрасца у основи разликује велика и мала слова. Али ако вас није брига за то, употреба заставице -и учиниће греп неосетљивим на велика и мала слова.

16. греп -н

Ознака -н ће приказати бројеве редова, тако да касније не морате да бринете о проналажењу исте линије.

17. гит греп

Гит, систем за контролу верзија, сам има уграђену греп наредбу која функционише отприлике попут вашег редовног греп-а. Али може се користити за тражење образаца на било ком урезаном стаблу користећи изворни гит ЦЛИ, уместо заморних цеви. На пример, ако сте у главној грани вашег репо-а, можете се грепнути преко репо-а користећи:

(мастер) $ гит греп

18. греп -о

Ознака -о је заиста корисна када покушавате да отклоните грешку са регуларног израза. Исписат ће само одговарајући дио линије, умјесто цијеле линије. Дакле, у случају да добијате превише нежељених линија за испоручени образац и не можете да разумете зашто се то догађа. Можете да користите заставицу -о да бисте одатле уназад одштампали увредљиви подниз и образложење вашег регуларног израза.

19. греп -к

Ознака -к би исписала линију, ако и само ако се цела линија подудара са испорученим регуларним изразом. Ово је донекле слично застави -в која је одштампала ред ако се и само цела реч подудара са испорученим регуларним изразом.

20. греп -Т

Када се бавите дневницима и излазима из љуске скрипти, већа је вероватноћа да ћете наићи на тврде картице да бисте разликовали различите излазне колоне. Ознака -Т уредно ће поравнати ове картице тако да су колоне уредно поредане, чинећи излаз читљивим.

21. греп -к

Ово потискује излаз и тихо покреће греп наредбу. Веома корисно приликом замене текста или покретања греп-а у демон скрипти.

22. греп -П

Људи који су навикли на перл синтаксу регуларног израза могу да користе заставицу -П да би користили управо то. Не морате да научите основни регуларни израз, који греп подразумевано користи.

23. греп -Д [АКЦИЈА]

У Унику се готово све може третирати као датотека. Сходно томе, било који уређај, утичница или ФИФО ток података могу се напајати греп-ом. Можете користити заставицу -Д иза које следи АКЦИЈА (подразумевана радња је ПРОЧИТАЈ). Неколико других опција су СКИП за тихо прескакање одређених уређаја и РЕЦУРСЕ за рекурзивно пролазак кроз директоријуме и симболичке везе.

24. Понављање

Ако тражите задати образац који представља понављање познатог једноставнијег узорка, тада користите коврџаве заграде како бисте означили број понављања

$ греп -Е „[0-9] 10“

Овим се исписују редови који садрже низове дужине 10 или више цифара.

25. Стенографије понављања

Неки посебни знакови резервисани су за одређену врсту понављања образаца. Можете их користити уместо коврчавих заграда, ако одговарају вашим потребама.

? : Узорак који претходи знаку питања треба да се подудара са нулом или једном.

*: Узорак који претходи звезди треба да се подудара нула или више пута.

+ : Узорак који претходи плусу треба да се подудара један или више пута.

25. Бите Оффсетс

Ако желите да знате померање бајтова линија у којима се налази одговарајући израз, можете да користите заставицу -б и за штампање помака. Да бисте одштампали одмак само одговарајућег дела линије, можете користити -б заставицу са -о заставицом.

$ греп -б -о [назив документа]

Помак једноставно значи, након колико бајта од почетка датотеке започиње одговарајући низ.

26. егреп, фгреп и ргерп

Често ћете видети позивање егрепа да бисте користили проширену синтаксу регуларног израза о којој смо раније разговарали. Међутим, ово је застарела синтакса и препоручује се да избегавате употребу ове. Уместо тога користите греп -Е. Слично томе, користите греп -Ф, уместо фгреп и греп -р уместо ргреп.

27. греп -з

Понекад улаз у греп нису редови који се завршавају знаком новог реда. На пример, ако обрађујете листу имена датотека, они могу доћи из различитих извора. Ознака -з говори грепу да третира НУЛЛ знак као завршетак линије. Ово вам омогућава да третирате долазни ток као било коју уобичајену текстуалну датотеку.

28. греп -а [назив документа]

Ознака -а говори грепу да се према датој датотеци понаша као према уобичајеном тексту. Датотека би могла бити бинарна, али греп ће садржаје у себи третирати као да су текст.

29. греп -У [назив документа]

Ознака -У говори грепу да третира испоручене датотеке као да су бинарне датотеке, а не текст. Подразумевано греп погађа тип датотеке гледајући првих неколико бајтова. Коришћење ове заставе занемарује оно што делује.

30. греп -м НУМ

Код великих датотека, хватање за израз може трајати заувек. Међутим, ако желите да проверите само првих НУМ бројева подударања, можете да користите заставицу -м да бисте то постигли. Бржи је, а излазом је такође могуће управљати.

Закључак

Много свакодневног посла сисадмин-а укључује пребирање великих делова текста. То могу бити сигурносни дневници, евиденције вашег веб-сервера или сервера поште, активности корисника или чак велики текст ман страница. Греп вам пружа додатну флексибилност када се бавите овим случајевима коришћења.

Надамо се да су вам неколико претходних примера и случајева употребе помогли да боље разумете овај живи фосил софтвера.

Контролишите и управљајте кретањем миша између више монитора у оперативном систему Виндовс 10
Двоструки приказ миша омогућава вам контролу и конфигурисање кретања миша између више монитора, успоравајући његово кретање близу границе. Виндовс 10/...
ВинМоусе вам омогућава да прилагодите и побољшате кретање показивача миша на Виндовс рачунару
Ако желите да побољшате подразумеване функције показивача миша, користите бесплатни програм ВинМоусе. Додаје још функција које ће вам помоћи да на нај...
Леви тастер миша не ради у оперативном систему Виндовс 10
Ако уз преносни рачунар или стони рачунар користите наменски миш, али тастер миша не ради у оперативном систему Виндовс 10/8/7 из неких разлога, ево н...