Асноўная фільтрацыя з дапамогай grep

Адна з каманд, якую я найбольш часта выкарыстоўваю ў тэрмінале, гэта Grep, нават больш, чым cd o ls.

Grep Ён мае мноства варыянтаў і прапануе розныя магчымасці, аднак я выкарыстоўваю найбольш звычайны спосаб, але пачнем з тлумачэння Што такое grep?

grep - гэта проста фільтр, гэта каманда, якая паказвае радкі, якія адпавядаюць заяўленаму намі фільтру.

Напрыклад, у нашай сістэме мы маем файл / usr / share / doc / bash / FAQ і змест гэтага файла:

Прагляд змесціва файла

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

cat /usr/share/doc/bash/FAQ

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

cat /usr/share/doc/bash/FAQ | grep version

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

Што рабіць, калі я хачу паказаць усё, акрамя радка версіі?

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

cat /usr/share/doc/bash/FAQ | grep -v version

Вы заўважаеце розніцу? ... проста дадаўшы -v гэта ўжо мае значэнне 😀

Дык калі паставяць Grep ён пакажа вам толькі тое, што адпавядае фільтру, але калі вы паставіце grep -v ён пакажа вам усё, акрамя фільтра.

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

прывітанне


Змест артыкула адпавядае нашым прынцыпам рэдакцыйная этыка. Каб паведаміць пра памылку, націсніце тут.

11 каментарыяў, пакіньце свой

Пакіньце свой каментар

Ваш электронны адрас не будзе апублікаваны.

*

*

  1. Адказны за дадзеныя: Мігель Анхель Гатон
  2. Прызначэнне дадзеных: Кантроль спаму, кіраванне каментарыямі.
  3. Легітымнасць: ваша згода
  4. Перадача дадзеных: Дадзеныя не будуць перададзены трэцім асобам, за выключэннем юрыдычных абавязкаў.
  5. Захоўванне дадзеных: База дадзеных, размешчаная Occentus Networks (ЕС)
  6. Правы: у любы час вы можаце абмежаваць, аднавіць і выдаліць сваю інфармацыю.

  1.   Dmoz сказаў

    Несумненна, вельмі ўніверсальная каманда, калі вы навучыцеся спраўляцца з ёй, гэта палягчае вам жыццё =) ...

  2.   Скалібур сказаў

    Прывітанне! .. ..сапраўды вельмі карысная каманда .. у маім выпадку я яе шмат выкарыстоўваю ..

    Простым прыкладам можа быць, напрыклад, dpkg -l | grep 'пакет' (у выпадку дыстрыбутываў на аснове debian), ён выкарыстоўваецца, каб ведаць, ці ўсталяваны ў нас гэты пакет.

    Выдатна даць гэтыя інструменты ўсёй нашай суполцы 😉

    1.    KZKG ^ Гаара сказаў

      Вялікі дзякуй 😀
      Сапраўды, grep настолькі ж магутны, як наша ўяўленне ха-ха-ха-ха, разам з awk (і выразаным) яны сапраўды дасягаюць цудаў * - *

      Неўзабаве я дам яшчэ некалькі парад па працы з тэрміналамі 😉
      Прывітанне і дзякуй за каментарый.

      PS: Цікавая ваша электронная пошта LOL !!

  3.   Гексборг сказаў

    Вельмі добра!! Так. Безумоўна, grep з'яўляецца адным з выратавальнікаў жыцця для тых, хто любіць карыстацца тэрміналам. Усяго пара заўваг: Вам сапраўды не трэба наогул карыстацца камандай cat. Вы можаце паставіць імя файла як параметр grep, як гэта:

    grep-версія / usr / share / doc / bash / FAQ

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

    версія grep </ usr / share / doc / bash / FAQ

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

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

    З іншага боку, grep становіцца сапраўды карысным пры выкарыстанні рэгулярных выразаў ... Калі б я хацеў дапамагчы, зрабіўшы пост пра рэгулярныя выразы, што мне трэба было зрабіць? Ці дастаткова дадаць новы допіс з працоўнага стала WordPress?

    1.    KZKG ^ Гаара сказаў

      Ну цікава, я заўсёды прызвычаіўся выкарыстоўваць яго з коткай HAHAHAHA, дзякуй за падказку 😀

      1.    Х'юга сказаў

        З дапамогай grep вы можаце зрабіць фільтры крыху менш простымі, напрыклад:

        grep -B3 -A3 -E -i --color=auto -n "(desde|hacia)?linux(\.)?$" ~/miarchivo.txt

        У асноўным гэта паказвае радкі, якія ўтрымліваюць шуканы намі тэрмін (які можа быць у любой камбінацыі з вялікай і малой літар), а таксама тры радкі перад і пасля трох, вылучае вынікі іншым колерам, ставіць нумары радкоў у вынікі і Гэта дазваляе ўключыць пашыраныя рэгулярныя выразы, якія ў гэтым выпадку дазваляюць шукаць у "myfile.txt" усе радкі, якія заканчваюцца desdelinux, hacialinux або звычайным linux (з кропкай або без яе).

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

  4.   Драгнель сказаў

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

  5.   Jhon сказаў

    Прывітанне. дзякуй за паведамленне. Са мной здараецца, што пры выкарыстанні grep слова, якое я пішу ў якія з'явіліся радкі, не становіцца колерам. (звычайна гэта так) [прыклад: grep cat file.txt]
    з'яўляюцца лініі і кошка, але котка не набывае пэўнага колеру, каб адрозніць яе
    (у ccompus майго універсітэта гэта відаць)
    Ці ведаеце вы, як я мог актываваць гэты параметр?
    Калі ласка, калі вы можаце мне адказаць. мой электронны ліст sps-003@hotmail.com

    1.    fdy nb сказаў

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

  6.   Enrique сказаў

    Прывітанне, сябар, ты абсалютна маеш рацыю, у цябе выдатнае пачуццё карыснасці. З гэтага часу я стаўлю grep на першае месца ў спісе любімых каманд.
    прывітанне

  7.   сканджура сказаў

    І як было б паказаць супрацоўнікаў, адфільтраваных па заробку?