grep

Grep mitme mustri või stringi jaoks

Grep mitme mustri või stringi jaoks
Global Regular Expression Print või Grep on võimas utiliit, mida kasutatakse Linuxi operatsioonisüsteemis. Grepi kaudu saate otsida piirangute abil erinevate mustrite või stringidega failidest. Funktsioon Grep võtab kataloogidest või alamkataloogidest otsimiseks ühe või mitu sisendfaili. Paljude mustrite otsimiseks kasutame operaatorit OR. Seda operaatorit kasutatakse käsus kirjutatud mustrite eraldamiseks. Muutmisoperaator “|” kasutatakse tagasilöögiga. Erineva regulaaravaldise otsimise süntaks on järgmine:

Süntaks

$ grep 'muster1 \ | muster2' failinimi

Regulaarne avaldis kirjutatakse alati ühes jutumärgis. Kaks nime on eraldatud tagasilöögi ja muutmise operaatoriga. Käsk lõpetatakse failinimega. Grep rekursiivse tegemise ajal kasutatakse ühe failinime asemel kataloogi või tervet teed.

Eelduseks

Selles artiklis õpime grepi funktsionaalsust mitme mustri ja stringi otsimisel. Selleks peate oma virtuaalses kastis töötama Linuxi operatsioonisüsteemi. Peate selle oma süsteemi installima. Pärast seadistamist on teil juurdepääs kõigi rakenduste kasutamiseks. Pärast parooli sisestamist kasutaja juurde sisselogimist minge jätkamiseks terminali kesta käsureale.

Otsige failis mitme mustri järgi, kasutades Grepi

Kui tahame otsida konkreetsest failist mitu mustrit või stringi, kasutage grep-funktsiooni, et sortida failis käsus rohkem kui ühe sisendsõna abil. Kasutame '\ |' operaatorid kahe mustri eraldamiseks käsus.

$ grep 'tehniline \ | töö' fail.txt

Käsk tähistab grepi toimimist. Mõlemat mainitud faili otsitakse failist.txt. Otsitud sõnad on kogu väljundi tekstis esile tõstetud.

Rohkem kui kahe sõna otsimiseks jätkame nende lisamist sama meetodiga.

$ grep 'graphic \ | photoshop \ | posters' fail.txt

Otsige mitu stringi, ignoreerides juhtumit

Linuxi grep-funktsiooni juhtude tundlikkuse kontseptsiooni mõistmiseks kaaluge järgmist näidet. Grepil töötab kaks käsku. Üks on '-i'ga ja teine ​​ilma. See näide näitab käskude erinevusi. Esimene neist näitab, et antud failis otsitakse kahte sõna. Kuid nagu on märgitud käsus “Aqsa”, algab see tähega A. Seega ei tõsteta seda esile, sest konkreetses failis on see tekst väiketähtedega.

$ grep 'Aqsa \ | õde' fail20.txt

See võtab arvesse ainult sõna õde, mida näeb väljundis.

Teises näites oleme liputundlikkust ignoreerinud, kasutades lippu -I. See funktsioon otsib mõlemat sõna ja väljund tõstetakse esile. Sõltumata sellest, kas sõna 'Aqsa' on kirjutatud suurtähtedega või mitte, otsib grep failis olevast tekstist sama vastet. Nii on mõlemad käsud omal moel abiks.

$ grep -I fail 'Aqsa \ | õde '20.txt

Mitme vaste loendamine failis

Funktsioon Loendamine aitab arvestada sõna või sõnade esinemist konkreetses failis. Näiteks kui soovite teada süsteemis esinevatest vigadest. Detail salvestatakse logifaili. Selle teabe säilitamiseks kindlas kaustas kirjutate kaustade tee. See näide näitab, et logifailides ilmnes 71 viga.

Otsige failist täpseid vasteid

Kui soovite oma süsteemi failidest leida täpse vaste, peate selle täpseks sortimiseks kasutama lippu "-w". Oleme tsiteerinud lihtsat ja põhjalikku näidet. Kaaluge allpool toodud näites otsimist ilma "-w", see käsk toob mõlemad sõnad vastavaks antud sisendile. Kuid lipu „-w” kasutamisel on otsing piiratud, kuna sisestussõnad vastavad ainult esimesele stringile. Teist sõna ei tõsteta esile, kuna „-w” võimaldab mustriga täpselt kokku sobitada.

Fail $ -iw 'hamna \ | house' 21.txt

Siin kasutatakse ka teksti-otsingu puhul väiketähtede tundlikkuse eemaldamiseks.

Nagu fotolt näha, pole tulemused samad. Esimene käsk toob kõik seotud andmed tervete stringidena, teine ​​käsk näitab, kuidas täpsed andmed sobivad mitme stringi otsimisel grepi kaudu.

Grep konkreetse faililaiendi tüübi jaoks rohkem kui ühe mustri jaoks

Otsimine toimub kõigis failides. Teie otsustada on, kui otsite failinime abil. See otsib ainult kindlaid faile. Kuid pakkudes faililaiendit, otsitakse andmeid läbi kõigi sama laiendiga failide. Seotud tulemuse kujutamiseks on kaks erinevat näidet. Esimest näidet arvestades loetakse veafailid kõikides failides .logipikendus. “-C” kasutatakse loendamiseks.

$ grep -c 'hoiatus \ | tõrge' / var / log / *.logi

See käsk tähendab, et faile otsitakse kõigist failidest .logipikendus. Vastete arv kuvatakse väljundis, et grep-i paremini näidata konkreetse faililaiendiga.

Teises näites oleme Linuxi failides teksti laiendiga kasutanud kahte sõna. Kõik andmed kuvatakse numbrite kujul. 0 ei tähenda ühtivaid andmeid, samas kui 0 näitab, et vaste on olemas.

$ grep -c 'aqsa \ | my' / home / aqsayasin / *.txt

Mitme mustri otsimine rekursiivselt failis

Vaikimisi kasutatakse praegust kataloogi, kui käsus pole ühtegi kataloogi mainitud. Kui soovite otsida enda valitud kataloogist, peate seda mainima. Operaatorit “-r” kasutatakse rekursiivselt grepimiseks./ home / aqsayasin / näitab failide teed, samas kui *.txt näitab laiendit. Rekursiivselt otsimiseks on grepi sihtmärk tekstifailid.

$ grep -R "tehniline \ | tasuta" / kodu / aqsayasin / *.txt

Soovitud väljund on esile tõstetud tulemuses, mis näitab nende sõnade olemasolu.

Järeldus

Eespool mainitud artiklis oleme tsiteerinud erinevaid näiteid, et kasutajal oleks hõlpsam mõista Linuxis mitme mustri otsimiseks käskude tööd. See juhend aitab teil olemasolevaid teadmisi laiendada.

Parimad mängude jaoks mõeldud Linuxi distrod 2021. aastal
Linuxi operatsioonisüsteem on oma algsest, lihtsast, serveripõhisest välimusest kaugele jõudnud. See operatsioonisüsteem on viimastel aastatel tohutul...
Kuidas Linuxis oma mänguseanssi jäädvustada ja voogesitada
Varem peeti mängude mängimist ainult hobiks, kuid aja jooksul kasvas mängutööstus tehnoloogia ja mängijate arvu osas tohutult. Mängupublik on veebimän...
Parimad mängud, mida saab mängida käte jälgimisega
Oculus Quest tutvustas hiljuti suurepärast ideed käsitsi jälgimisest ilma kontrolleriteta. Üha suurema hulga mängude ja tegevustega, mis toetavad kas ...