Прыклад выкарыстанняў Grep Каманда Linux

ўвядзенне

Каманда Grep Linux, выкарыстоўваюцца ў якасці спосабу фільтрацыі ўваходных дадзеных.

GREP азначае Global Regular Expression Printer і, такім чынам, для таго, каб выкарыстоўваць яго эфектыўна, вы павінны мець некаторыя веды аб рэгулярных выразах.

У гэтым артыкуле я збіраюся паказаць вам некалькі прыкладаў, якія дапамогуць вам зразумець каманду Grep.

01 з 09

Як знайсці радок у файл з дапамогай GREP

Linux Grep Command.

Уявіце, у вас ёсць тэкставы файл з імем кнігі з наступнымі дзіцячымі кніжнымі назвамі:

Для таго, каб знайсці ўсе кнігі са словам «The» у назве варта выкарыстоўваць наступны сінтаксіс:

Grep кніг

Наступныя вынікі будуць вернутыя:

У кожным выпадку, слова «The» будзе падсветлены.

Звярніце ўвагу, што пошук адчувальны да рэгістра, так што калі адзін з тытулаў быў «» замест «The», то ён бы не быў вернуты.

Ігнараванне выпадку вы можаце дадаць наступны параметр:

Grep кніг --ignore-справа

Вы таксама можаце выкарыстоўваць -i перамыкач наступным чынам:

Grep -i кнігі

02 з 09

Пошук радкі ў файле Выкарыстанне падстаноўных

Каманда Grep з'яўляецца вельмі магутнай. Вы можаце выкарыстоўваць мноства метадаў ўзгаднення шаблону для фільтрацыі вынікаў.

У гэтым прыкладзе я пакажу вам , як знайсці радок у файл з дапамогай падстаноўных знакаў .

Уявіце, у вас ёсць файл з імем месцы з наступнымі шатландскімі тапонімы:

Aberdeen

Абериствит

Aberlour

Инверури

плашч з капюшонам без рукавоў

Ньюбергская

новыя алені

новы Маларослага

Глазга

Эдынбург

Калі вы хочаце, каб знайсці ўсе месцы з Inver ў імя выкарыстоўваць наступны сінтаксіс:

Grep Инвер * месца

Зорачкай (*) падстаноўныя азначае 0 або шмат. Таму, калі ў вас ёсць месца, якое называецца Инвер ці месца пад назвай Інвернес, то абодва будуць вернутыя.

Іншы падстаноўныя вы можаце выкарыстоўваць гэта перыяд (.). Вы можаце выкарыстоўваць гэта, каб адпавядаць адной літары.

Grep inver.r месцаў

Прыведзеная вышэй каманда будзе знайсці месцы, званыя Inverurie і Inverary, але не знойдзе ні invereerie, таму што можа быць толькі адзін падстаноўныя паміж двума р-х, як пазначана ў адзін перыяд.

Перыяд падстаноўныя карысна, але гэта можа выклікаць праблемы, калі ў вас ёсць адзін, як частка тэксту, які вы шукаеце.

Напрыклад паглядзіце на гэты спіс даменных імёнаў

Для таго, каб знайсці ўсе about.coms можна проста ажыццяўляць пошук, выкарыстоўваючы наступны сінтаксіс:

Grep * о * domainnames

Прыведзеная вышэй каманда будзе падаць уніз, калі спіс змяшчае наступнае імя ў яго:

Можна, такім чынам, паспрабуйце наступны сінтаксіс:

Grep * about.com domainnames

Гэта будзе працаваць нармальна, калі не было дамен з імем:

aboutycom.com

Для таго, каб сапраўды шукаць тэрмін About.com вам трэба будзе бегчы кропку наступным чынам:

Grep * аб \ .com domainnames

Канчатковае падстаноўных, каб паказаць вам, пытальнік, які пазначае нуль або адзін знак.

Напрыклад:

Grep? BER тапонімы

Гэтая каманда будзе вяртаць Aberdeen, Абериствит ці нават Бервик.

03 з 09

Пошук радкоў у пачатку і ў канцы радка Выкарыстанне Grep

Карат (^) і сімвал даляра ($) дазваляюць Вам шукаць мадэлі ў пачатку і ў канцы радкоў.

Уявіце, у вас ёсць файл пад назвай футбол з наступнымі назвамі каманд:

Калі вы хочаце, каб знайсці ўсе каманды, якія пачалі з Манчэстэрам вы павінны выкарыстоўваць наступны сінтаксіс:

Grep ^ Манчэстэр каманды

Прыведзеная вышэй каманда вернецца Манчэстэр Сіці і Манчэстар Юнайтэд, але не ФК Юнайтэд оф Манчэстэр.

У якасці альтэрнатывы вы можаце знайсці ўсе каманды, якія сканчаюцца Юнайтэд, выкарыстоўваючы наступны сінтаксіс:

Grep United $ каманды

Прыведзеная вышэй каманда вернецца Манчэстар Юнайтэд і Ньюкасл Юнайтэд, але не ФК Юнайтэд оф Манчэстэр.

04 з 09

Падлік колькасці супадзенняў з выкарыстаннем Grep

Калі вы не хочаце, каб вярнуць фактычныя радкі, якія адпавядаюць шаблоне з дапамогай Grep, але вы проста хочаце ведаць, колькі вы можаце выкарыстоўваць наступны сінтаксіс:

Grep -c шаблон входной_файл

Калі ўзор быў падабраны ў два разы, то лік 2 будзе вернута.

05 з 09

Пошук усіх тэрмінаў, якія не адпавядаюць з дапамогай Grep

Уявіце, у вас ёсць спіс геаграфічных назваў з краінамі, пералічаных наступным чынам:

Вы, магчыма, заўважылі, што Колвин Бэй не мае ні адна краіна, звязаны з ім.

Для пошуку ўсіх месцаў краіны вы можаце выкарыстоўваць наступны сінтаксіс:

GREP зямля $ месца

Вынікі вяртаюцца б усе месцы для Колвин Бого выключэнні.

Гэта працуе, відавочна, толькі для месцаў, якія заканчваюцца на зямлі (ледзь навуковай).

Вы можаце інвертаваць выбраць, выкарыстоўваючы наступны сінтаксіс:

Grep -v зямля $ месца

Гэта знойдзе ўсе месцы, якія не сканчаюцца зямлі.

06 з 09

Як знайсці пустыя радкі ў файлах з выкарыстаннем Grep

Уявіце, у вас ёсць ўваходны файл, які выкарыстоўваецца дадаткам трэцяга боку, якая спыняе чытанне файла, калі ён знаходзіць пустую радок наступным чынам:

Калі праграма трапляе ў лінію пасля таго, як Ліверпулем ён спыніць чытанне азначае Колвин Бэй прапушчана цалкам.

Вы можаце выкарыстоўваць Grep для пошуку пустых радкоў з дапамогай наступнага сінтаксісу:

Grep ^ $ месца

На жаль, гэта не асабліва карысна, таму што ён проста вяртае пустыя радкі.

Вядома, вы можаце атрымаць падлік колькасці пустых радкоў у якасці праверкі, каб убачыць, калі файл з'яўляецца сапраўдным наступным чынам:

GREP -з ^ $ месца

Аднак было б больш карысна ведаць нумары радкоў, якія маюць пусты радок, так што вы можаце замяніць іх. Вы можаце зрабіць гэта з дапамогай наступнай каманды:

GREP -n ^ $ месца

07 з 09

Як шукаць радка знакаў загалоўных і малых Выкарыстанне Grep

Выкарыстанне Grep вы можаце вызначыць, якія радкі ў файле маюць знакі верхняга рэгістра, выкарыстоўваючы наступны сінтаксіс:

Grep '[AZ]' імя_файла

Квадратныя дужкі [] дазваляюць вызначыць дыяпазон знакаў. У прыведзеным вышэй прыкладзе гэта адпавядае любому знаку, які знаходзіцца паміж А і Z.

Таму, каб адпавядаць малыя сімвалы, якія вы можаце выкарыстоўваць наступны сінтаксіс:

Grep '[аз] імя_файла

Калі вы хочаце, каб адпавядаць толькі літары, а не лікавыя або іншыя сімвалы, якія вы можаце выкарыстоўваць наступны сінтаксіс:

Grep '[A-Za-Z]' імя_файла

Вы можаце зрабіць тое ж самае з лікамі наступным чынам:

Grep '[0-9]' імя_файла

08 з 09

Шукаю паўтараюцца ўзоры Выкарыстанне Grep

Вы можаце выкарыстоўваць фігурныя дужкі {} для пошуку паўтаральнага ўзору.

Уявіце, у вас ёсць файл з нумарамі тэлефонаў наступным чынам:

Вы ведаеце, што першая частка нумара павінна быць тры лічбай, і вы хочаце, каб знайсці радкі, якія не адпавядаюць гэтаму шаблоне.

З папярэдняга прыкладу вы ведаеце, што [0-9] вяртае ўсе лікі ў файле.

У дадзеным выпадку мы хочам, каб радкі, якія пачынаюцца з трыма лічбамі, за якімі варта злучок (-). Вы можаце зрабіць гэта з дапамогай наступнага сінтаксісу:

GREP "^ [0-9] [0-9] [0-9] -" нумар

Як мы ведаем з папярэдніх прыкладаў карат (^) азначае, што радок павінна пачынацца з наступнага схемай.

[0-9] будзе шукаць любы лік ад 0 да 9. Як гэта ўваходзіць у тры разы ён адпавядае 3 нумары. Нарэшце, ёсць злучок, каб пазначыць, што злучок павінен атрымаць поспех тры лікі.

Выкарыстоўваючы фігурныя дужкі, вы можаце зрабіць пошук менш наступным чынам:

GREP "^ [0-9] \ {3 \} -" нумар

Слэш экрануе {кранштэйна так, што ён працуе як частка назваў паведамленняў, але, па сутнасці, што гэта выказванне [0-9] {3}, што азначае любы лік паміж 0 і 9 тры разы.

Фігурныя дужкі таксама можна выкарыстоўваць наступным чынам:

{5,10}

{5}

{5,10} азначае, што характар ​​ідзе пошук павінен быць паўтораны па меншай меры, у 5 разоў, але не больш чым 10, тады як {5,} азначае, што сімвал павінен быць паўтораны па меншай меры, у 5 разоў, але гэта можа быць больш, чым гэта.

09 з 09

Выкарыстанне Выснова з іншых каманд, выкарыстоўваючы Grep

Да гэтага часу мы разглядалі пошук па шаблоне ў асобных файлах, але Grep можна выкарыстоўваць выхад з іншых каманд у якасці ўваходных дадзеных для параўнання з шаблонам.

Выдатны прыклад гэтага з'яўляецца выкарыстанне каманды сабаку, якая пералічвае актыўныя працэсы.

Напрыклад запусціце наступную каманду:

пс -ef

Усе запушчаныя працэсы ў вашай сістэме будзе адлюстроўвацца.

Вы можаце выкарыстоўваць Grep для пошуку канкрэтнага запушчанага працэсу наступным чынам:

пс -ef | Grep светлячок

рэзюмэ

Каманда Grep з'яўляецца асноўнай камандай Linux, і гэта адзін, які добра варта навучанне, як гэта зробіць вашу жыццё нашмат прасцей пры пошуку файлаў і працэсаў пры выкарыстанні тэрмінала.