Прыклады каманды grep ў Linux

Anonim

Прыклады каманды grep ў Linux

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

Выкарыстоўваем каманду grep ў Linux

Што тычыцца адрозненняў паміж дыстрыбутывамі Лінукс, у гэтым выпадку яны не гуляюць ніякай ролі, паколькі якая цікавіць вас каманда grep па змаўчанні даступная ў большасці зборак і ўжываецца абсалютна аднолькава. Сёння мы б хацелі абмеркаваць не толькі дзеянне grep, але і разабраць асноўныя аргументы, якія дазваляюць значна спрасціць працэдуру пошуку.

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

Ўжыванне каманды cat у тэрмінале Linux

Чытаць далей: Прыклады каманды cat у Linux

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

Стандартны пошук па змесціве

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

  1. У камандным радку увядзіце grep word testfile, дзе word - шуканая інфармацыя, а testfile - назва файла. Калі робіце пошук, знаходзячыся за межамі тэчкі, пакажыце поўны шлях па прыкладзе / home / user / folder / filename. Пасля ўводу каманды націсніце на клавішу Enter.
  2. Звычайны пошук праз каманду grep ў Linux

  3. Засталося толькі азнаёміцца ​​з даступнымі варыянтамі. На экране адлюструюцца поўныя радкі, а ключавыя значэння будуць выдзелены чырвоным колерам.
  4. Адлюстраванне вынікаў звычайнага пошуку праз каманду grep ў Linux

  5. Важна ўлічваць і рэгістр літар, паколькі кадоўка Linux не аптымізаваная для пошуку без уліку вялікіх ці маленькіх знакаў. Калі вы хочаце абыйсці вызначэнне рэгістра, ўпішыце grep -i "word" testfile.
  6. Пошук змесціва файла без уліку рэгістра ў Linux

  7. Як бачыце, на наступным скрыншоце вынік змяніўся і дадалася яшчэ адна новая радок.
  8. Адлюстраванне знойдзеных слоў без уліку рэгістра ў Linux

Пошук з захопам радкоў

Часам карыстальнікам неабходна знайсці не толькі дакладнае супадзенне па радках, але і даведацца інфармацыю, якая ідзе пасля іх, напрыклад, пры справаздачы аб пэўнай памылку. Тады правільным рашэннем будзе ўжыць атрыбуты. Ўпішыце ў кансоль grep -A3 "word" testfile, каб уключыць у вынік і тры наступныя радкі пасля супадзення. Вы можаце напісаць -A4, тады будуць захопленыя чатыры радкі, абмежаванняў ніякіх не маецца.

Паказвае колькасць радкоў пасля ключавога слова ў Linux

Калі замест -A вы ўжыеце аргумент -B + колькасць радкоў, у выніку адлюструюцца дадзеныя, якія знаходзяцца да кропкі ўваходжання.

Паказвае колькасць радкоў да ключавога слова ў Linux

Аргумент -З, у сваю чаргу, захоплівае радкі вакол ключавога слова.

Паказвае навакольныя радкі ключавога слова ў Linux

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

grep -B3 "word" testfile

grep -C3 "word" testfile

Пошук ключавых слоў у пачатку і ў канцы радкоў

Патрэба вызначэння ключавога слова, якое стаіць у пачатку ці ў канцы радка, часцей за ўсё ўзнікае падчас працы з канфігурацыйнымі файламі, дзе кожная лінія адказвае за адзін параметр. Для таго каб убачыць дакладнае ўваходжанне ў пачатку, неабходна прапісаць grep "^ word" testfile. Знак ^ як раз і адказвае за прымяненне гэтай опцыі.

Шукаць па ключавым слове на пачатку радка Linux

Пошук змесціва ў канцы радкоў адбываецца прыкладна па такім жа прынцыпе, толькі ў двукоссі варта дадаць знак $, і каманда здабудзе такі выгляд: grep "word $" testfile.

Шукаць па ключавым слове ў канцы радка Linux

пошук лікаў

Пры пошуку патрэбных значэнняў карыстальнік не заўсёды мае інфармацыю датычна дакладнага словы, прысутнага ў радку. Тады працэдуру пошуку можна вырабляць праз колькасці, што часам значна спрашчае задачу. Трэба толькі задзейнічаць разгляданую каманду ў выглядзе grep "[0-7]" testfile, дзе «[0-7]» - дыяпазон значэнняў, а testfile - назва файла для сканавання.

Шукаць дыяпазон лічбавых значэнняў у Linux

Аналіз усіх файлаў дырэкторыі

Сканаванне ўсіх аб'ектаў, якія знаходзяцца ў адной тэчцы, называецца рэкурсіўнай. Юзэру патрабуецца прымяніць толькі адзін аргумент, які праведзены аналіз усіх файлаў тэчкі і выведзе на экран прыдатныя радкі і іх размяшчэнне. Спатрэбіцца ўвесці grep -r "word" / home / user / folder, дзе / home / user / folder - шлях да дырэкторыі для сканавання.

Рэкурсіўны пошук праз каманду grep ў Linux

Блакітным колерам будзе адлюстроўвацца месца захоўвання файла, а калі хочаце атрымаць радкі без гэтай інфармацыі, прысвойце яшчэ адзін аргумент, каб каманда атрымалася такой grep -h -r "word" + шлях да тэчцы.

Рэкурсіўны пошук без адлюстравання шляху да файла ў Linux

Дакладны пошук па словах

У пачатку артыкула мы ўжо казалі аб звычайным пошуку па словах. Аднак пры такім метадзе ў выніках будуць высвечвацца дадатковыя камбінацыі. Напрыклад, вы знаходзіце слова User, але каманда адлюструе яшчэ і User123, PasswordUser і іншыя супадзення, калі такія маюцца. Каб пазбегнуць такога выніку, прысвойце аргумент -w (grep -w "word" + імя файла або яго размяшчэнне).

Адлюстроўваць толькі дакладныя ўваходжання ў Linux

Выконваецца гэтая опцыя і пры патрэбе пошуку адразу некалькіх дакладных ключавых слоў. У такім выпадку увядзіце egrep -w 'word1 | word2' testifile. Звярніце ўвагу, што ў гэтым выпадку да grep дадаецца літара e, а двукоссі ставяцца адзінарныя.

Адлюстроўваць некалькі дакладных уваходжанняў ў Linux

Пошук радкоў без пэўнага слова

Разгляданая ўтыліта ўмее не толькі знаходзіць слова ў файлах, але і выводзіць радкі, у якіх адсутнічае зададзенае карыстальнікам значэнне. Тады перад увядзеннем ключавога значэння і файла дадаецца -v. Дзякуючы ёй пры актывацыі каманды вы ўбачыце толькі адпаведныя дадзеныя.

Пошук радкоў не маюць названага слова ў Linux

Сінтаксіс grep сабраў у сабе яшчэ некалькі аргументаў, пра якія можна сцісла распавесці:

  • -I - паказваць толькі назвы файлаў, падыходных пад крытэр пошуку;
  • -s - адключыць апавяшчэння аб знойдзеных памылках;
  • -n - адлюстроўваць нумар радка ў файле;
  • -b - паказваць нумар блока перад радком.

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

Сёння мы дэталёва разабралі каманду grep, даступную ў дыстрыбутывах на Linux. Яна з'яўляецца адной з стандартных і часта выкарыстоўваюцца. Прачытаць пра іншых папулярных інструментах і іх сінтаксісе вы можаце ў асобным нашым матэрыяле па наступнай спасылцы.

Чытайце таксама: Часта выкарыстоўваюцца каманды ў «тэрмінале» Linux

Чытаць далей