греп

Линук егреп наредба са примерима

Линук егреп наредба са примерима
Наредба егреп припада породици наредбе греп која се користи за претрагу образаца у Линуку. Ако сте користили греп наредбу, егреп ради исто као и греп -Е (греп Ектендед регек '). Егреп скенира одређену датотеку, ред до реда и исписује редове који садрже низ претраживања / регуларни израз. У овом чланку ћемо објаснити 15 корисних примера егреп наредби које ће помоћи почетницима, па чак и стручњацима да изврше значајна претраживања у Линуку. Извели смо ове примере на систему Дебиан 10 Бустер, али они се лако могу копирати на већини Линук дистрибуција.

Пример 1: Тражење одређеног низа у датотеци

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

Синтакса:

$ егреп назив датотеке „сеарцх_стринг“

Пример:

$ егреп дебиан самплефиле.ткт

У овом примеру, тражио сам реч „дебиан“ у наведеној текстуалној датотеци. Можете видети како резултати приказују читав ред који садржи реч „дебиан“:

Пример 2: Тражење одређеног низа у више датотека

Помоћу наредбе егреп можете претраживати низ између више датотека које се налазе у истом директоријуму. Морате бити мало прецизнији у пружању „шаблона“ за претраживане датотеке. То ће постати јасније на примеру који ћемо представити.

Синтакса:

$ егреп "стринг_претраживања" име_датотеке

Пример:

Овде ћемо тражити реч „дебиан“ у свим .ткт датотеке специфицирајући образац имена датотеке на следећи начин:

$ егреп “дебиан” *.ткт

Команда је одштампала све редове, заједно са именима датотека која садрже реч „дебиан“ из свих .ткт датотеке у тренутном директоријуму.

Пример 3: Рекурзивно претраживање низа у целом директоријуму

Када желите да претражите низ у свим датотекама из директоријума и његових поддиректоријума, то можете учинити помоћу заставице -р са командом егреп.

Синтакса:

$ егреп -р "стринг_потраге" *

Пример:

У овом примеру тражим реч „узорак“ у датотекама читавог тренутног директорија (Преузимања).

$ егреп -р "узорак" *

Резултати садрже све редове, заједно са именима датотека, који садрже реч „узорак“ из свих датотека у директоријуму Преузимања и његових поддиректоријума.

Пример 4: Обављање претраге без обзира на мала и велика слова

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

Синтакса:

$ егреп -и назив датотеке "сеарцх_стринг"

Пример:

Овде тражим реч „дебиан“ и желим да резултати приказују све редове из датотеке који садрже реч „дебиан“ или „Дебиан“, без обзира на случај.

$ егреп -и назив датотеке "сеарцх_стринг"

Можете да видите како ми је заставица -и помогла у дохваћању свих редова који садрже низ за претрагу кроз претрагу великих слова „неосјетљиво“.

Пример 5: Тражење низа као пуне речи, а не као подниза

Када обично тражите низ кроз егреп, он исписује све речи које садрже низ као подниз. На пример, тражење низа „он“ исписат ће све ријечи које садрже низ „он“, попут „он“, „онли“, „монитор“, „цлоне“ итд. Ако желите да резултати приказују само реч „он“ као целу реч, а не као подниз, можете да користите заставицу -в са егреп.

Синтакса:

$ егреп -в назив датотеке „сеарцх_стринг“

Пример:

Овде тражим низ „он“ у огледној датотеци:

$ егреп -и “он” самплефиле.ткт

Из горњег резултата можете видети да и он садржи реч „само“. Међутим, то није оно што желим, јер искључиво тражим реч „укључено“. Дакле, ово је наредба коју ћу користити уместо ње:

$ егреп -ив “он” самплефиле.ткт

Сада моји резултати претраге укључују само редове који садрже реч „укључено“ као целу реч.

Пример 6: Штампање само имена датотека која садрже низ

Понекад желимо да преузмемо само имена датотека која садрже одређени низ, уместо да исписујемо редове који га садрже. То се може урадити помоћу заставице -л (мало слово Л) са командом егреп.

Синтакса:

$ егреп -л "образац_за_претраживање" назив_датотеке

Пример:

Овде тражим низ „сампле“ у свим .ткт датотеке у тренутном директоријуму:

$ егреп -л узорак *.ткт

Резултати претраживања исписују само име датотека које садрже наведени низ.

Пример 7: Штампање само низа за претрагу из датотеке

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

Синтакса:

$ егреп -о назив датотеке "сеарцх_стринг"

Пример:

У овом примеру тражим реч „Ово“ у свом досијеу.

$ егреп -о Овај пример_датотеке_.ткт

Напомена: Ова употреба наредбе је корисна када тражите низ заснован на обрасцу регуларног израза. У једном од наредних примера детаљно ћемо објаснити регуларне изразе.

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

Понекад је веома важно знати контекст у датотеци у којој се користи одређени низ. Егреп добро дође у смислу да се може користити за приказ линије која садржи низ за претрагу и такође одређени број линија пре, после и око њега.

Ово је узорак текстуалне датотеке коју ћу користити за објашњавање наредних примера:

Н број редова После низа за претрагу:

Коришћење заставице А на следећи начин приказаће линију која садржи низ за претрагу и Н број линија након ње:

$ егреп -А назив датотеке „сеарцх_стринг“

Пример:

$ егреп -А 2 „сампле“ самплефиле.ткт

Н број редова Пре низа за претрагу:

Коришћење заставице Б на следећи начин приказаће линију која садржи низ за претрагу и Н број линија испред ње:

$ егреп -Б назив датотеке „сеарцх_стринг“

Пример:

$ егреп -Б 2 „сампле“ самплефиле.ткт

Н број редова Пре низа за претрагу:

Коришћење заставе Ц на следећи начин приказаће линију која садржи низ за претрагу и Н број редова пре и после ње:

$ егреп -Ц назив датотеке „сеарцх_стринг“

Пример:

$ егреп -Ц 2 „сампле“ самплефиле.ткт

Пример 9: Подударање регуларног израза у датотекама

Команда егреп постаје снажнија док претражујете регуларне изразе уместо чврстих низова претраживања у датотеци.

Синтакса:

$ егреп "РегуларЕкпрессионс" назив датотеке

Објасните нам како можете да користите регуларне изразе у својој егреп претрази:

Оператор понављања Користите
? Претходна ставка пре ? није обавезан и подудара се највише једном

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

Пример:

У следећем примеру подударају се редови који садрже следећи израз:

почев од „Гноме“ и завршавајући на „програмима“

Пример 10: Истицање низа за претрагу

Када подесите променљиву окружења ГРЕП_ОПТИОНС као доле, добијете свој излаз са низом / обрасцем за претрагу истакнутим у резултатима:

$ судо екпорт ГРЕП_ОПТИОНС = '- цолор = ауто' ГРЕП_ЦОЛОР = '100; 8'

Затим можете тражити низ на било који начин који смо описали у примерима овог чланка.

Пример 11: Извођење обрнутог претраживања у датотеци

Инвертованом претрагом подразумевамо да наредба егреп штампа све у датотеци, осим редова који садрже низ за претрагу. Користићемо следећу датотеку узорка да објаснимо инвертну претрагу кроз егреп. Садржај датотеке смо одштампали помоћу наредбе цат:

Синтакса:

$ егреп -в име датотеке „сеарцх_стринг“

Пример:

Из примера датотеке коју смо поменули, желимо да изоставимо ред који садржи реч „два“ у излазу, па ћемо користити следећу наредбу:

$ егреп -в "два" самплефиле_.ткт

Можете видети како излаз садржи све из датотеке узорка, осим другог реда који је садржао низ за претрагу „два“.

Пример 12: Извођење обрнутог претраживања на основу више критеријума / обрасца претраживања

Помоћу ознаке -в такође можете извршити наредбу егреп да изврши обрнуто претраживање на основу више од једног низа / обрасца за претрагу.

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

Синтакса:

$ егреп -в -е "стринг_претраживања" / ”образац” -е "низ_потражи" / "образац"
… назив документа

Пример:

Из примера датотеке коју смо поменули желимо да изоставимо редове који садрже речи „један“ и „два“ у излазу, па ћемо користити следећу наредбу:

$ егреп -в -е “један” -е “два” самплефиле_.ткт

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

Пример 13: Штампање броја линија које се подударају са низом за претрагу

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

Синтакса:

$ егреп -ц назив датотеке „сеарцх_стринг“

Пример:

У овом примеру ћемо користити заставицу -ц за бројање броја редова који садрже реч „Ово“ у нашој датотеци узорка:

$ егреп -ц "Ово" име датотеке

Овде такође можете да користите функцију обрнутог претраживања за бројање и испис броја редова који не садрже низ за претрагу: 

$ греп -в -ц "име_стране" име датотеке

Пример 14: Приказ броја реда где се подудара низ

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

Синтакса:

$ греп -н назив датотеке "сеарцх_стринг"

Пример:

$ греп -н "Тхис" самплефиле_.ткт

Можете да видите како се бројеви линија приказују у односу на резултате претраге.

Пример 15: Приказивање позиције у датотеци у којој се подудара низ за претрагу

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

$ греп -о -б "име_истраживања" име датотеке

Пример:

$ греп -о -б "Тхис" самплефиле_.ткт

Резултати претраге исписују офсет датотеке у бајту у коме постоји реч за претрагу.Ово је била детаљна употреба наредбе егреп. Користећи комбинацију заставица објашњених у овом чланку, можете извршити значајније и сложеније претраге датотека.

СуперТукКарт за Линук
СуперТукКарт је сјајан наслов дизајниран да вам пружи Марио Карт искуство бесплатно на вашем Линук систему. Прилично је изазовно и забавно играти, диз...
Водич за битку за Веснотх
Битка за Веснотх је једна од најпопуларнијих стратешких игара отвореног кода које тренутно можете играти. Не само да је ова игра у развоју већ јако ду...
0 А.Д. Приручник
Од многих стратешких игара тамо, 0 А.Д. успева да се истакне као свеобухватан наслов и врло дубока, тактичка игра упркос томе што је отворен извор. Ра...