Šiame straipsnyje mes parodysime, kaip paleisti išankstinę eilučių paiešką naudojant „Grep“ su reguliariąja išraiška, pateikdami 10 praktinių pavyzdžių apie jos diegimą. Daugelis šiame straipsnyje aptartų pavyzdžių turi praktinę reikšmę, tai reiškia, kad galite juos naudoti kasdien programuodami „Linux“. Šie pavyzdžiai apibūdina keletą dažniausiai ieškomų modelių regexp pavyzdžių.
1 pavyzdys: tekstiniame faile raskite vieną užsakomąjį reisą
Norėdami išvesties failo „knyga“ eilutes, kuriose yra simbolis „$“, įveskite:
$ grep '\ $' knyga2 pavyzdys: suraskite vieną eilutę teksto faile
Failo „knyga“, kuriame yra eilutė „$ 14“, išvesties eilutės.99 ', tipas:
$ grep '\ $ 14 \.99 'knyga3 pavyzdys: tekstiniame faile raskite vieną specialų frachtuotoją
Norėdami išvesties failo „knyga“ eilutes, kuriose yra simbolis „\“, įveskite:
$ grep '\\' knyga4 pavyzdys: linijų derinimas, pradedant tam tikru tekstu
Jei norite pažymėti eilutės pradžią, regexp naudokite „ˆ“.
Norėdami išvesti visas eilutes „/ usr / dict / words“, prasidedančiose „pro“, įveskite:
$ grep 'ˆpro' / usr / dict / wordsNorėdami išleisti visas failo „knyga“ eilutes, kurios prasideda tekstu „pradžioje“, neatsižvelgiant į atvejį, įveskite:
$ grep -i 'pradžioje' knygojePASTABA: Šie regexps'ai buvo cituojami simboliais; taip yra todėl, kad kai kurie kriauklės kitaip traktuoja „treat“ simbolį kaip specialų „metachakterį“
Be žodžių ir frazių paieškų, grep galite naudoti ieškodami sudėtingų teksto šablonų, vadinamų reguliariomis išraiškomis. Reguliarioji išraiška arba „regexp“ yra specialiųjų simbolių teksto eilutė, nurodanti a rinkinys modelių, kad atitiktų.
Techniškai kalbant, žodžių ar frazių modeliai yra reguliarūs posakiai, tiesiog labai paprasti. Reguliariajame posakyje dauguma simbolių, įskaitant raides ir skaičius, reprezentuoja save. Pavyzdžiui, regexp modelis 1 atitinka eilutę „1“ ir modelį berniukas atitinka eilutę „berniukas“.
Yra keletas rezervuotų simbolių, vadinamų metaženklais, kurie nėra įprasti reiškiniai, tačiau jie turi ypatingą reikšmę, naudojamą sudarant sudėtingus modelius. Šie metaženklai yra šie: ., *, [, ], ˆ, $ ir \. Gerai pažymėti, kad tokie metaženkliai yra būdingi beveik visuose įprastuose ir specialiuose „Linux“ paskirstymuose. Čia yra geras straipsnis, kuriame pateikiamos specialios metaženklų reikšmės ir pateikiami jų naudojimo pavyzdžiai.
5 pavyzdys: eilučių, kurios baigiasi tam tikru tekstu, derinimas
Naudokite „$“ kaip paskutinį cituojamo teksto simbolį, kad atitiktų tą tekstą tik eilutės pabaigoje. Norėdami išvesties eilutes faile „eina“, baigiant šauktuku, įveskite:
$ grep '!$ 'vyksta6 pavyzdys: tam tikro ilgio linijos
Norėdami suderinti tam tikro ilgio linijas, naudokite tą skaičių.'simboliai tarp' ˆ 'ir' $ '- pvz., norint sutapti su visomis dviejų simbolių (arba stulpelių) pločio eilutėmis, ieškokite ieškodami regreso' ˆ… $ '.
Norėdami išvesti visas „/ usr / dict / words“ eilutes, kurios yra tiksliai trijų simbolių pločio, įveskite:
$ grep 'ˆ ... $' / usr / dict / wordsIlgesnėms eilutėms naudingiau naudoti kitą konstrukciją: 'ˆ.\ skaičius \ $ ', kur skaičius yra atitinkamų eilučių skaičius. Norėdami nurodyti skaičių diapazoną, naudokite „,“.
Norėdami išvesti visas „/ usr / dict / words“ eilutes, kurios yra lygiai dvylikos simbolių pločio, įveskite:
$ grep 'ˆ.\ 12 \ $ '/ usr / dict / wordsNorėdami išvesti visas „/ usr / dict / words“ eilutes, kurių plotis yra dvidešimt du ar daugiau simbolių, įveskite:
$ grep 'ˆ.\ 22, \ $ '/ usr / dict / words7 pavyzdys: sutampančios eilutės, kuriose yra bet kuris regexpsas
Norėdami suderinti eilutes, kuriose yra bet kuris iš regexps, nurodykite kiekvieną regexps, kad galėtumėte ieškoti tarp pakaitinių operatorių ('\ |') kaip regexp ieškant. Bus išvestos eilutės, kuriose yra bet kuris iš nurodytų regexps.
Norėdami išrašyti visas „playboy“ eilutes, kuriose yra rašmenys „knyga“ arba „tortas“, įveskite:
$ grep 'knyga \ | tortas' playboy8 pavyzdys: sutampančios eilutės, kuriose yra visi kai kurie regexps
Išvesties eilutėms, kurios atitinka visi iš daugelio regexps'ų naudokite grep, kad išvestumėte eilutes, kuriose yra pirmasis norimas atitikti regexp, ir pateikite išvestį į grep, o antrasis regexp yra argumentas. Toliau pridėkite pypkes, kad atliktumėte visų norimų paieškos laukų paieškas.
Norėdami išleisti visas „grojaraščio“ eilutes, kuriose yra šablonai „krantas“ ir „dangus“, neatsižvelgiant į atvejį, įveskite:
$ grep -i 'kranto' grojaraštis | grep -i dangus9 pavyzdys: linijos, kuriose yra tik tam tikri simboliai
Norėdami suderinti eilutes, kuriose yra tik tam tikrų simbolių, naudokite regexp 'ˆ [simboliai] * $', kur sutampa simboliai. Norėdami išvesties eilutes „/ usr / dict / words“, kuriose yra tik balsiai, įveskite:
$ grep -i 'ˆ [aeiou] * $' / usr / dict / žodžiaiParinktis „-i“ sutampa su simboliais, neatsižvelgiant į mažąsias ir mažąsias raides; taigi, šiame pavyzdyje visi balsių simboliai sutapatinami neatsižvelgiant į didžiųjų ir mažųjų raidžių atvejus.
10 pavyzdys: frazių paieška, nepaisant tarpų
Vienas iš būdų ieškoti frazės, kuri gali atsirasti su papildomais tarpais tarp žodžių arba skersai eilutės ar puslapio pertraukos, yra pašalinti visas eilutės tiekimo vietas ir papildomas tarpus iš įvesties, tada paimti. Norėdami tai padaryti, perkelkite įvestį į tr naudodami parinktį '-d' kaip argumentą "\ r \ n: \> \ | -" (pašalindami visas eilutės pertraukas iš įvesties); prijunkite prie FM filtro naudodami parinktį „-u“ (tekstas išvedamas vienodais tarpais); ir pypkę, kad patrauktumėte pagal ieškomą modelį.
Norėdami ieškoti eilučių pertraukose eilutės „tuo pačiu metu kaip„ faile „docs“, įveskite:
$ kačių dokumentai | tr -d '\ r \ n: \> \ |-"| fmt -u | grep "tuo pačiu metu kaip"
Santrauka
Šiame straipsnyje apžvelgėme 10 praktinių „Grep Linux“ komandos pavyzdžių, kaip ieškoti ir rasti eilutes tekstiniame faile, pavyzdžių. Kelyje sužinojome, kaip naudoti įprastus posakius kartu su „Grep“, norint atlikti sudėtingas paieškas teksto failuose. Dabar jau geriau suprantate, kokios yra „Linux“ paieškos funkcijos.
Čia yra papildomų išteklių tiems, kurie nori sužinoti daugiau apie „Linux“ programavimą:
Ištekliai sistemos administratoriams
- „Linux“ sistemos administratoriaus vadovas - kas yra „Linux“ operacinė sistema ir kaip ji veikia
- „Linux“ sistemos administratoriaus vadovas - „Linux“ virtualiosios atminties ir disko buferio talpyklos apžvalga
- „Linux“ sistemos administratoriaus vadovas - geriausia „Linux“ sistemų stebėjimo praktika
- „Linux“ sistemos administratoriaus vadovas - geriausia „Linux“ įkrovos ir išjungimo praktika
- „Linux System Admin Guide“ - geriausia atsarginių kopijų kūrimo ir valdymo praktika
Ištekliai „Linux“ branduolio programuotojams
- Kaip veikia „Linux“ operacinės sistemos atminties valdymas
- Išsami „Linux“ branduolio operacinės sistemos procesų apžvalga
- Kokie yra „Linux Kernel“ užduočių valdymo mechanizmai
„Linux“ failų sistemos žodynas
Išsami „Linux“ failų ir katalogų sistemos apžvalga