„Grep“ buvo plačiai naudojamas „Linux“ sistemose dirbant su kai kuriais failais, ieškant tam tikro modelio ir daug daugiau. Šį kartą mes naudojame komandą grep, norėdami rodyti eilutes prieš ir po atitinkamo raktinio žodžio, naudojamo tam tikrame faile. Šiam tikslui mes naudosime „-A“, „-B“ ir „-C“ vėliavą visoje mokymo programoje. Taigi, norėdami geriau suprasti, turite atlikti kiekvieną žingsnį. Įsitikinkite, kad turite „Ubuntu 20“.04 įdiegta „Linux“ sistema.
Pirma, norėdami pradėti dirbti su grep, turite atidaryti savo Linux komandinės eilutės terminalą. Šiuo metu jūs esate savo „Ubuntu“ sistemos pagrindiniame kataloge iškart po komandinės eilutės terminalo atidarymo. Taigi, pabandykite išvardyti visus failus ir aplankus pagrindiniame „Linux“ sistemos kataloge naudodami žemiau esančią komandą ls, ir jūs gausite visus. Matote, kad joje yra keletas tekstinių failų ir keletas aplankų.
ls
01 pavyzdys: „-A“ ir „-B“ naudojimas
Iš aukščiau parodytų tekstinių failų mes apžvelgsime kai kuriuos iš jų ir bandysime jiems pritaikyti komandą grep. Atidarykime tekstinį failą „vienas.txt “pirmiausia naudodami populiarią komandą„ katė “, kaip nurodyta apačioje:
$ katinas vienas.txt
Pirmiausia šiame tekstiniame faile pamatysime keletą konkrečių žodžių, naudodami komandą grep, kaip nurodyta toliau. Ieškome žodžio „mes“ tekstiniame faile „vienas.txt “naudojant grep instrukciją. Išvestyje rodomos dvi teksto failo eilutės, kuriose yra „mes“.
$ grep mes vienas.txt
Taigi šiame pavyzdyje kai kuriuose teksto failuose rodysime eilutes prieš ir po konkretaus žodžio atitikties. Taigi naudojant tą patį tekstinį failą „vienas.txt “mes derinome žodį„ mes “, o prieš jį rodome 3 eilutes, kaip nurodyta toliau. Vėliava „-B“ reiškia „Prieš“. Išvestyje rodomos tik 2 eilutės prieš konkrečią žodžio eilutę, nes faile nėra daugiau eilučių prieš konkretaus žodžio eilutę. Tai taip pat rodo tas eilutes, kuriose yra tas konkretus žodis.
$ grep -B 3 mes vienas.txt
Panaudokime tą patį raktinį žodį „mes“ iš šio failo, kad būtų rodomos 3 eilutės po eilutės, kuriose yra žodis „mes“. Vėliava „-A“ pateikia „After“. Išvestyje vėl rodomos tik 2 eilutės, nes faile nėra daugiau eilučių.
$ grep -A 3 mes vienas.txt
Taigi, naudokime naują raktinį žodį, kuris bus suderintas, ir rodykime eilutes ar eilutes prieš ir po eilutės, kurioje jis yra. Taigi mes vartojome žodį „gali“, kad atitiktų. Eilutės numeriai šiuo atveju yra vienodi. 3 eilutės po atitikimo žodžio „gali“ buvo rodomos žemiau, naudojant komandą grep.
$ grep -A 3 gali vienas.txt
Galite pamatyti, kaip išvestis rodoma prieš atitinkančio žodžio eilutes, naudojant raktinį žodį „gali“. Priešingai, jis rodo tik dvi eilutes prieš atitikusio žodžio eilutę, nes prieš ją nėra daugiau eilučių.
$ grep -B 3 gali vienas.txt
02 pavyzdys: „-A“ ir „-B“ naudojimas
Paimkime kitą tekstinį failą „du.txt “iš namų katalogo ir rodykite jo turinį naudodami žemiau esančią komandą„ cat “.
$ katinas du.txt
Parodykime 5 eilutes prieš žodį „Dauguma“ iš failo „dvi.txt “naudojant komandą grep. Išvestyje rodomos 5 eilutės prieš eilutėje yra konkretus žodis.
$ grep -B 5 Dauguma dviejų.txt
Grep komanda rodo 5 eilutes po žodžio „Dauguma“ iš teksto failo „dvi.txt “buvo pateiktas žemiau.
$ grep -A 5 Dauguma dviejų.txt
Pakeiskime ieškomą raktinį žodį. Mes naudosime „of“ kaip raktinį žodį, kurį šį kartą reikia suderinti. Parodykite 2 eilutes prieš žodį „iš“ iš teksto failo „dvi.txt “galima padaryti naudojant žemiau esančią komandą grep. Išvestyje rodomos dvi raktinio žodžio „of“ eilutės, nes faile jis yra du kartus. Taigi išvestyje yra daugiau nei 2 eilutės.
$ grep -B 2 iš dviejų.txt
Dabar rodomos 2 failo eilutės „dvi.txt “po eilutės, kurioje yra raktinis žodis„ of “, galima atlikti naudojant žemiau esančią komandą. Išvestyje vėl rodoma daugiau nei 2 eilutės.
$ grep -A 2 iš dviejų.txt
03 pavyzdys: '-C' naudojimas
Kita vėliava „-C“ buvo naudojama rodyti eilutes prieš ir po atitikusio žodžio. Parodykime failo turinį „vienas.txt “naudojant katės komandą.
$ katinas vienas.txt
Mes pasirenkame „visuomenė“ kaip raktinį žodį, kurį reikia suderinti. Žemiau esančioje komandoje „grep“ bus rodomos 2 eilutės prieš ir 2 eilutės po eilutės, kurioje yra žodis „visuomenė“. Išvestyje rodoma viena eilutė prieš konkrečią žodžio eilutę ir 2 eilutės po jos.
$ grep -C 2 visuomenės vienas.txt
Pažiūrėkime failo „du.txt “naudodamiesi žemiau esančia kačių komanda.
$ katė du.txt
Šioje iliustracijoje mes naudojame eilėraščius kaip raktinį žodį. Taigi, atlikite žemiau pateiktą komandą. Išvestyje rodomos dvi eilutės prieš ir dvi eilutės po suderinto žodžio.
$ grep -C 2 eilėraščiai du.txt
Panaudokime dar vieną raktinį žodį iš failo „du.txt “. Šį kartą „gamtą“ vartojame kaip raktinį žodį. Taigi, pabandykite žemiau pateiktą komandą naudodami „-C“ kaip vėliavą, kurios raktinis žodis „gamta“ iš failo „du“.txt “. Šį kartą išvestyje yra daugiau nei dvi eilutės. Kadangi byloje ne kartą yra žodis „gamta“, tai yra jo priežastis. Pirmiausia esančiame raktiniame žodyje „gamta“ yra dvi eilutės prieš ir dvi eilutės po jo. Nors antrasis atitiko tą patį raktinį žodį, „gamta“ prieš jį turi dvi eilutes, tačiau po jo nėra eilučių, nes ji yra paskutinėje failo eilutėje.
$ grep -C 2 eilėraščiai du.txt
Išvada
Naudodamiesi „grep“ instrukcija, sėkmingai rodome eilutes prieš ir po konkretaus žodžio.