Maghanap ng mga string o pattern sa loob ng payak na teksto mula sa terminal

tungkol sa paghahanap para sa mga string o pattern

Sa susunod na artikulo makikita natin ang ilan ginagamit ang mga tool ng command-line upang makahanap ng mga tumutugma na mga string o pattern sa loob ng mga file ng teksto. Ang mga tool na ito ay karaniwang ginagamit kasabay ng mga regular na expression, dinaglat bilang REGEX, na kung saan ay natatanging mga string upang ilarawan ang isang pattern sa paghahanap.

Ang mga regular na expression ay mga pattern na ginamit upang makahanap ng isang tiyak na kumbinasyon ng mga character sa loob ng isang string ng teksto. Ang mga regular na expression ay nagbibigay ng isang napaka-nababaluktot na paraan upang maghanap o makilala ang mga string ng teksto. Bagaman sa mga sumusunod na linya hindi namin makikita ang mga regular na expression, gagamit kami ng mga pattern o string.

Maghanap ng mga string o pattern mula sa terminal

Utos ng Grep

Ang Grep ay isang akronim para sa Pandaigdigang Regular Expression Print. Ito ay isang malakas na tool ng command line na kapaki-pakinabang kapag naghahanap para sa isang tukoy na string o pattern sa isang file. Sa grep magagamit namin ang isang malawak na hanay ng mga pag-andar, tulad ng na ipinaliwanag sa amin ng isang kasamahan sa blog na ito kanina.

Ang syntax para sa paggamit ng utos na grep ay medyo simple:

grep PATRON [RUTA AL ARCHIVO]

Halimbawa, upang maghanap para sa string 'Ubuntu'sa isang file na sa halimbawang ito tatawag kami text.txt, nang hindi isinasaalang-alang ang pagkakaiba sa pagitan ng upper at lower case, sa isang terminal (Ctrl + Alt + T) kakailanganin lamang naming ipatupad ang utos:

grep -i text

grep -i Ubuntu texto.txt

Utos sed

Ang uhaw ay maikli para sa StreamEditor. Ito ay isa pang kapaki-pakinabang na tool para sa terminal kung saan maaari naming manipulahin ang teksto sa isang file. Ang mga paghahanap, pag-filter at pagpapalit ng mga string sa isang naibigay na file.

Ang sed utos bilang default ay naglilimbag ng output sa STDOUT (Karaniwang output). Ipinapahiwatig nito na ang resulta ng pagpapatupad ay naka-print sa terminal sa halip na nai-save sa isang file.

Ang Sed utos ay maaaring gamitin tulad ng sumusunod:

sed -OPCIONES COMANDO [RUTA AL ARCHIVO]

Halimbawa, upang mapalitan ang lahat ng mga paglitaw ng 'Linux'sa isang teksto ni'Linux', ang utos na gagamitin ay ang sumusunod:

Utos sed

sed 's/Linux/GnuLinux/g' texto.txt

Kung ang hinahanap natin ay i-redirect ang output sa isang file sa halip na i-print ito sa terminal, gagamitin namin ang pag-redirect na tanda tulad ng sumusunod:

sed 's/Linux/GnuLinux/g' texto.txt > salida.txt

Ang output output ay nai-save sa file output.txt sa halip na mai-print sa screen.

sed utos output

Upang makakita ng higit pang mga pagpipilian, maaari mo kumunsulta sa mga pahina ng tao:

tao nauuhaw

man sed

ack

Ang Ack ay isang mabilis na tool sa linya ng utos na nakasulat sa Perl. Ito ay itinuturing na isang palakaibigang kapalit para sa grep utility, na bumubuo rin ng mga resulta sa isang kaakit-akit na paraan ng paningin.

Sa i-install ang ack sa aming system kailangan naming magpatupad sa terminal (Ctrl + Alt + T):

i-install ang ack

sudo apt install ack

Ang utos Hinanap ni Ack ang file o direktoryo para sa mga linya na naglalaman ng tugma para sa pamantayan sa paghahanap. Pagkatapos ay i-highlight ang kaukulang string. Ang tool na ito ay may kakayahang makilala ang mga file batay sa kanilang mga extension.

Ang syntax ng utos ng Ack ay magiging tulad ng sumusunod

ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]

Halimbawa, upang maghanap para sa term Linux sa isang file, kailangan naming ipatupad:

utos ack paghahanap

ack Linux texto.txt

Ang tool sa paghahanap ay medyo matalino at kung ang gumagamit ay hindi naghahatid ng anumang mga file o direktoryo, hinahanap nito ang kasalukuyang direktoryo at mga subdirectory para sa pattern ng paghahanap.

Sa sumusunod na halimbawa, walang ibinigay na file o direktoryo. Awtomatikong nakita ni Ack ang magagamit na file sa direktoryo at hinahanap ang pagtutugma ng pattern:

ack paghahanap nang walang file

ack Linux

ripgrep

ripgrep ay isang cross-platform utility upang maghanap para sa mga regular na pattern ng pagpapahayag. Ito ay mas mabilis kaysa sa lahat ng mga tool sa paghahanap na nabanggit sa itaas, at naghahanap ito ng mga direktoryo nang paulit-ulit para sa mga tumutugma na pattern. Pinapayagan ka ring maghanap para sa mga tukoy na uri ng file. Bilang default, lalaktawan ng ripgrep ang mga binary at nakatagong mga file / direktoryo.

Sa i-install ang ripgrep sa system, ang kailangan mo lang gawin ay patakbuhin ang sumusunod na utos sa terminal (Ctrl + Alt + T):

pag-install ng ripgrep

sudo apt install ripgrep

Ang syntax para sa paggamit ng ripgrep ay medyo prangka:

rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]

Kung nais naming maghanap para sa kadena 'Linux'sa mga file na matatagpuan sa loob ng kasalukuyang direktoryo, magagawa lamang namin ang utos:

tao rg linux

rg Linux

Upang makakita ng higit pang mga pagpipilian, maaaring magamit ng mga gumagamit pahina ng tao:

tao rg

man rg

Pilak na Naghahanap

Sa i-install ang tool na itoSa Ubuntu magkakaroon lamang kami upang buksan ang isang terminal (Ctrl + Alt + T) at isulat ang utos:

pag-install ng silversearcher-ag

sudo apt install silversearcher-ag

Ang Silver Searcher ay isang cross-platform, bukas na tool sa paghahanap ng mapagkukunan na katulad ng ack ngunit may diin sa bilis. Ginagawa nitong madali upang makahanap ng isang tukoy na string sa loob ng mga file sa pinakamaikling oras na posible. Ang syntax na gagamitin ay:

ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo

Halimbawa, upang maghanap para sa 'Linux'sa File text.txt, magsusulat kami sa terminal (Ctrl + Alt + T):

maghanap kasama ang silversearcher

ag Linux texto.txt

Upang makita ang higit pang mga pagpipilian maaari kaming kumunsulta sa pahina ng tao:

lalaking silversearcher

man ag

Ito ay ilan lamang sa mga pinakakaraniwang ginagamit na tool ng utos para sa paghahanap, pag-filter, at pagmamanipula ng teksto sa Linux.


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.