Часам карыстальнікі сутыкаюцца з неабходнасцю ажыццяўлення пошуку пэўнай інфармацыі ўнутры якіх-небудзь файлаў. Часта канфігурацыйныя дакументы або іншыя аб'ёмныя дадзеныя месцяць у сабе вялікая колькасць радкоў, таму ўручную адшукаць патрэбныя дадзеныя не атрымліваецца. Тады на дапамогу прыходзіць адна з ўбудаваных каманд у аперацыйныя сістэмы на Linux, якая дазволіць выканаць знаходжанне радкоў літаральна за лічаныя секунды.
Выкарыстоўваем каманду grep ў Linux
Што тычыцца адрозненняў паміж дыстрыбутывамі Лінукс, у гэтым выпадку яны не гуляюць ніякай ролі, паколькі якая цікавіць вас каманда grep па змаўчанні даступная ў большасці зборак і ўжываецца абсалютна аднолькава. Сёння мы б хацелі абмеркаваць не толькі дзеянне grep, Але і разабраць асноўныя аргументы, якія дазваляюць значна спрасціць працэдуру пошуку.
Чытайце таксама: Шукаем файлы ў Linux
падрыхтоўчыя працы
Усе далейшыя дзеянні будуць вырабляцца праз стандартную кансоль, яна ж дазваляе адкрываць файлы толькі шляхам ўказанні поўнага шляху да іх альбо калі «Тэрмінал» запушчаны з неабходнай дырэкторыі. Даведацца бацькоўскую тэчку файла і перайсці да яе ў кансолі можна так:
- Запусціце файлавы менеджэр і перамесціцеся у патрэбную тэчку.
- Націсніце правай кнопкай мышы на патрабаванай файле і абярыце пункт «Уласцівасці».
- ва ўкладцы «Асноўныя» азнаёмцеся са радком «Бацькоўская папка».
- зараз запусціце «Тэрмінал» зручным метадам, напрыклад, праз меню ці заціснутага камбінацыі клавіш Ctrl + Alt + T.
- Тут перайдзіце да дырэкторыі праз каманду
cd / home / user / folder
, дзе user - імя карыстальніка, а folder - назоў тэчкі.
задзейнічайце камандуcat + назву файла
, Калі хочаце праглядзець поўнае змесціва. Дэталёвыя інструкцыі па працы з гэтай камандай шукайце ў іншай нашай артыкуле па спасылцы ніжэй.
Чытаць далей: Прыклады каманды cat у Linux
Дзякуючы выкананню прыведзеных вышэй дзеянняў вы можаце выкарыстоўваць grep, Знаходзячыся ў патрэбнай дырэкторыі, без ўказанні поўнага шляху да файла.
Стандартны пошук па змесціве
Перш чым пераходзіць да разгляду ўсіх даступных аргументаў, важна адзначыць і звычайны пошук па змесціве. Ён будзе карысны ў тых момантах, калі неабходна знайсці простае супадзенне па значэнні і вывесці на экран ўсё прыдатныя радка.
- У камандным радку увядзіце
grep word testfile
, дзе word - шуканая інфармацыя, а testfile - назва файла. Калі робіце пошук, знаходзячыся за межамі тэчкі, пакажыце поўны шлях па прыкладзе/ Home / user / folder / filename
. Пасля ўводу каманды націсніце на клавішу Enter. - Засталося толькі азнаёміцца з даступнымі варыянтамі. На экране адлюструюцца поўныя радкі, а ключавыя значэння будуць выдзелены чырвоным колерам.
- Важна ўлічваць і рэгістр літар, паколькі кадоўка Linux не аптымізаваная для пошуку без уліку вялікіх ці маленькіх знакаў. Калі вы хочаце абыйсці вызначэнне рэгістра, ўпішыце
grep -i "word" testfile
. - Як бачыце, на наступным скрыншоце вынік змяніўся і дадалася яшчэ адна новая радок.
Пошук з захопам радкоў
Часам карыстальнікам неабходна знайсці не толькі дакладнае супадзенне па радках, але і даведацца інфармацыю, якая ідзе пасля іх, напрыклад, пры справаздачы аб пэўнай памылку. Тады правільным рашэннем будзе ўжыць атрыбуты. Ўпішыце ў кансольgrep -A3 "word" testfile
, Каб уключыць у вынік і тры наступныя радкі пасля супадзення. Вы можаце напісаць-A4
, Тады будуць захопленыя чатыры радкі, абмежаванняў ніякіх не маецца.
Калі замест-A
вы ўжыеце аргумент-B + колькасць радкоў
, У выніку адлюструюцца дадзеныя, якія знаходзяцца да кропкі ўваходжання.
аргумент-З
, У сваю чаргу, захоплівае радкі вакол ключавога слова.
Ніжэй вы можаце ўбачыць прыклады прысвойвання названых аргументаў. Звярніце ўвагу, што абавязкова трэба ўлічваць рэгістр і прастаўляць падвойныя двукоссі.
grep -B3 "word" testfile
grep -C3 "word" testfile
Пошук ключавых слоў у пачатку і ў канцы радкоў
Патрэба вызначэння ключавога слова, якое стаіць у пачатку ці ў канцы радка, часцей за ўсё ўзнікае падчас працы з канфігурацыйнымі файламі, дзе кожная лінія адказвае за адзін параметр. Для таго каб убачыць дакладнае ўваходжанне ў пачатку, неабходна прапісацьgrep "^ word" testfile
. Знак ^ як раз і адказвае за прымяненне гэтай опцыі.
Пошук змесціва ў канцы радкоў адбываецца прыкладна па такім жа прынцыпе, толькі ў двукоссі варта дадаць знак $, І каманда здабудзе такі выгляд:grep "word $" testfile
.
пошук лікаў
Пры пошуку патрэбных значэнняў карыстальнік не заўсёды мае інфармацыю датычна дакладнага словы, прысутнага ў радку. Тады працэдуру пошуку можна вырабляць праз колькасці, што часам значна спрашчае задачу. Трэба толькі задзейнічаць разгляданую каманду ў выглядзеgrep "[0-7]" testfile
, дзе «[0-7]» - дыяпазон значэнняў, а testfile - назва файла для сканавання.
Аналіз усіх файлаў дырэкторыі
Сканаванне ўсіх аб'ектаў, якія знаходзяцца ў адной тэчцы, называецца рэкурсіўнай. Юзэру патрабуецца прымяніць толькі адзін аргумент, які праведзены аналіз усіх файлаў тэчкі і выведзе на экран прыдатныя радкі і іх размяшчэнне. спатрэбіцца ўвесціgrep -r "word" / home / user / folder
, дзе / Home / user / folder - шлях да дырэкторыі для сканавання.
Блакітным колерам будзе адлюстроўвацца месца захоўвання файла, а калі хочаце атрымаць радкі без гэтай інфармацыі, прысвойце яшчэ адзін аргумент, каб каманда атрымалася такойgrep -h -r "word" + шлях да тэчцы
.
Дакладны пошук па словах
У пачатку артыкула мы ўжо казалі аб звычайным пошуку па словах. Аднак пры такім метадзе ў выніках будуць высвечвацца дадатковыя камбінацыі. Напрыклад, вы знаходзіце слова User, Але каманда адлюструе яшчэ і User123, PasswordUser і іншыя супадзення, калі такія маюцца. Каб пазбегнуць такога выніку, прысвойце аргумент-w
(grep -w "word" + імя файла або яго размяшчэнне
).
Выконваецца гэтая опцыя і пры патрэбе пошуку адразу некалькіх дакладных ключавых слоў. У такім выпадку увядзіцеegrep -w 'word1 | word2' testifile
. Звярніце ўвагу, што ў гэтым выпадку да grep дадаецца літара e, А двукоссі ставяцца адзінарныя.
Пошук радкоў без пэўнага слова
Разгляданая ўтыліта ўмее не толькі знаходзіць слова ў файлах, але і выводзіць радкі, у якіх адсутнічае зададзенае карыстальнікам значэнне. Тады перад увядзеннем ключавога значэння і файла дадаецца-v
. Дзякуючы ёй пры актывацыі каманды вы ўбачыце толькі адпаведныя дадзеныя.
сінтаксіс grep сабраў у сабе яшчэ некалькі аргументаў, пра якія можна сцісла распавесці:
-I
- паказваць толькі назвы файлаў, падыходных пад крытэр пошуку;-s
- адключыць апавяшчэння аб знойдзеных памылках;-n
- адлюстроўваць нумар радка ў файле;-b
- паказваць нумар блока перад радком.
Нішто не перашкаджае вам ўжываць некалькі аргументаў для аднаго знаходжання, проста ўводзіце іх праз прабел, не забываючы ўлічваць рэгістр.
Сёння мы дэталёва разабралі каманду grep, Даступную ў дыстрыбутывах на Linux. Яна з'яўляецца адной з стандартных і часта выкарыстоўваюцца. Прачытаць пра іншых папулярных інструментах і іх сінтаксісе вы можаце ў асобным нашым матэрыяле па наступнай спасылцы.
Чытайце таксама: Часта выкарыстоўваюцца каманды ў "тэрмінале" Linux