Pangunahing pag-filter sa grep

Isa sa mga utos na pinaka ginagamit ko sa terminal ay grep, kahit na higit pa sa cd o ls.

grep Mayroon itong maraming mga pagpipilian at nag-aalok ng hindi magkatulad na mga posibilidad, subalit ginagamit ko ang pinaka-maginoo na paraan na posible, ngunit magsimula tayo sa pamamagitan ng pagpapaliwanag Ano ang grep?

Ang grep ay isang filter lamang, ito ay isang utos na nagpapakita ng mga linya na tumutugma sa filter na aming idineklara.

Halimbawa, sa aming system mayroon kaming file / usr / share / doc / bash / FAQ at ang nilalaman ng file na ito ay:

Tingnan ang nilalaman ng file

Kung nais mong ilista ang nilalaman sa terminal na may utos pusa (oo pusa, tulad ng pusa hehe) magagawa nila ito:

cat /usr/share/doc/bash/FAQ

Ngayon, ipagpalagay na nais lamang naming nakalista ang linya ng file na iyon na nagsasalita tungkol sa bersyon, para dito ginagamit namin ang grep:

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

Ang paglalagay nito sa terminal ay ipapakita lamang sa iyo ang linya na naglalaman ng "bersyon" sa file na iyon, hindi na ito magpapakita ng anumang linya na hindi naglalaman ng salitang iyon.

Paano kung nais kong ipakita ang lahat maliban sa linya ng bersyon?

Sa madaling salita, sa paraang ipinaliwanag ko sa iyo, ipapakita ang lahat ng tumutugma sa filter, ngayon ay ipapakita ko sa iyo kung paano mo lalabas ang lahat maliban sa ano ang tumutugma sa filter:

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

Napansin mo ba ang pagkakaiba? ... simpleng pagdaragdag -v gumagawa na ito ng pagkakaiba 😀

Kaya kung inilagay nila grep ipapakita lamang nito sa iyo kung ano ang tumutugma sa filter, ngunit kung inilagay mo grep -v ipapakita nito sa iyo ang lahat maliban sa filter.

Kaya dito natapos ang post, isa pang tip na ngayon marahil ay maaari nila itong maliitin ngunit ... wala silang ideya kung gaano kapaki-pakinabang ang grep, seryoso itong isang tagapagligtas 😀

Regards


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   DMoZ dijo

    Walang alinlangan isang napaka-maraming nalalaman na utos, sa sandaling malaman mong hawakan ito, ginagawang mas madali ang iyong buhay =) ...

  2.   Scalibur dijo

    Kumusta! .. .. talagang isang napaka kapaki-pakinabang na utos .. sa aking kaso ginagamit ko ito ng marami ..

    Ang isang simpleng halimbawa ay magiging, halimbawa, dpkg -l | grep 'package' (sa kaso ng mga distros batay sa debian), ginagamit ito upang malaman kung mayroon kaming naka-install na package.

    Mahusay na ibigay ang mga tool na ito sa aming buong komunidad 😉

    1.    KZKG ^ Gaara dijo

      Maraming salamat 😀
      Sa katunayan, ang grep ay kasing lakas ng ating imahinasyon hahahaha, kasama ang awk (at gupitin) nakakamit talaga nila ang mga kababalaghan * - *

      Maglalagay ako ng ilang karagdagang mga tip para sa pagtatrabaho sa terminal sa lalong madaling panahon 😉
      Pagbati at salamat sa iyong puna.

      PS: Nakakatuwa ang iyong email LOL !!

  3.   hexborg dijo

    Napakahusay !! Oo. Tiyak na ang grep ay isa sa mga tagatipid ng buhay para sa sinumang nais na gumamit ng terminal. Isang pares lang ng mga pangungusap: Hindi mo talaga kailangang gamitin ang utos ng pusa. Maaari mong ilagay ang filename bilang isang parameter ng grep tulad nito:

    bersyon ng grep / usr / share / doc / bash / FAQ

    Gayundin, kahit na hindi ito magagawa, palaging may pagpipilian na i-redirect ang utos ng utos sa pamamagitan ng paggawa ng katulad nito:

    bersyon ng grep </ usr / share / doc / bash / FAQ

    Ang huli ay maaaring gawin sa anumang utos, kaya't hindi kinakailangan na gumamit ng pusa upang magpadala ng isang file sa pag-input ng isang utos.

    Ang paggamit ng isang pag-redirect sa halip na pusa ay sanhi ng paglulunsad ng shell ng isang mas kaunting proseso, kaya't kumakain ng mas kaunting mga mapagkukunan. Hindi ito isang kasiya-siyang pagkakaiba, ngunit ito ay itinuturing na mahusay na kasanayan.

    Sa kabilang banda, ang grep ay magiging talagang kapaki-pakinabang kapag gumagamit ng regular na mga expression ... Kung nais kong tumulong sa pamamagitan ng paggawa ng isang post tungkol sa mga regular na expression, ano ang dapat kong gawin? Sapat na ba upang magdagdag ng isang bagong post mula sa desktop ng wordpress?

    1.    KZKG ^ Gaara dijo

      Oh nakakainteres, palagi akong nasanay na gamitin ito sa pusa HAHAHAHA, salamat sa tip 😀

      1.    Hugo dijo

        Sa grep maaari ka ring gumawa ng mga filter nang medyo hindi gaanong pangunahing, halimbawa:

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

        Karaniwang ipinapakita nito ang mga linyang naglalaman ng terminong hinahanap namin (na maaaring nasa anumang kumbinasyon ng malaki at maliit na titik), kasama ang tatlong linya bago ito at ang tatlo pagkatapos nito, hina-highlight ang mga resulta sa ibang kulay, naglalagay ng mga numero ng linya sa mga resulta, at nagbibigay-daan sa pagpapagana ng mga pinahabang regular na expression na sa kasong ito ay nagbibigay-daan sa paghahanap sa "myfile.txt" para sa lahat ng linya na nagtatapos sa desdelinux, patungo sa linux o plain linux (mayroon o walang endpoint).

        Sa pamamagitan ng paraan, ang mga regular na expression ay nag-aalok ng maraming kakayahang umangkop at bawat mabuting "geek" na may isang simbuyo ng damdamin para sa libreng software ay dapat malaman na gamitin ang mga ito, hehe.

  4.   dragnell dijo

    Posible ring gumamit ng zgrep para sa mga tablet sa .ta.gz napaka kapaki-pakinabang kapag nais naming suriin ang mga lumang log. Cheers

  5.   jhon dijo

    Hi salamat sa post. Nangyayari sa akin na ang paggamit ng grep, ang salitang isusulat ko sa mga lilitaw na linya ay hindi nagiging kulay. (sa pangkalahatan ganito ito) [halimbawa: grep cat file.txt]
    ang mga linya at pusa ay lilitaw, ngunit ang pusa ay hindi lumiliko sa isang tiyak na kulay upang makilala ito
    (sa ccompus ng aking uni nakikita ito)
    Alam mo ba kung paano ko mai-aaktibo ang pagpipiliang ito?
    Mangyaring kung maaari mong sagutin ako. ang aking email ay sps-003@hotmail.com

    1.    fdy nb dijo

      ang kaibigan ay kailangang magsulat ng pusa sa mga panipi na 'pusa' o "pusa" din na sinusundan ng pangalan ng file kung saan nais niyang hanapin ito

  6.   Enrique dijo

    Kumusta kaibigan, ikaw ay ganap na tama, mayroon kang isang mahusay na pakiramdam ng pagiging kapaki-pakinabang. Mula ngayon, inilalagay ko muna ang grep sa aking listahan ng mga paboritong utos.
    tungkol

  7.   scanjura dijo

    At paano ito ipapakita sa mga empleyado na nasala sa pamamagitan ng suweldo?