Anonim

Visuotinis įprastos išraiškos spausdinimas arba tiesiog grep yra viena universaliausių ir labiausiai paplitusių komandų „Unix“ ir „Linux“ sistemose. Komanda ieško vieno ar kelių įvesties failų ir atitinkamų šablonų eilučių. Dėl to jūs gaunate standartinį išėjimą su atitinkamomis linijomis.

Jei nenurodysite failo, grep skaitymams naudoja standartinę įvestį ir greičiausiai tai bus kitos komandos išvestis. Apskritai, grep yra nesudėtinga sintaksė, nesvarbu, ar ją naudojate su failo pavadinimu, ar be jo.

Šiame straipsnyje pateikiama greito grep sintaksės apžvalga ir keletas pagrindinių komandų, kurias galite naudoti su failo pavadinimu arba be jo.

Prieš tau pradedant

Visos grep komandos vykdo tą pačią sintaksę ir kiekvienas parametras turi specifinę funkciją. Štai pavyzdinė eilutė:

grep PATTERN

Jei norite valdyti komandos išvestį, grepe galite naudoti daugybę OPTIONS variantų, o skaičius prasideda nuo nulio. PATTERN nurodo paieškos modelį, kurį norite pritaikyti. Kalbant apie failą, failo vardas ar pavadinimai yra čia, bet parametras gali būti nustatytas į nulį.

Paieškos eilutė komandų išvestyje

Kaip nurodyta, nereikia naudoti konkrečių įvesties failų. Kitas komandos išvestis gali būti naudojama grep, norint gauti eilutes, kurios tiksliai atitiktų modelį. Tai gali būti naudojama norint nustatyti, kurie procesai yra aktyvūs sistemoje. Tai yra komandos pavyzdžio sintaksė:

$ ps -ef | grep www-data

Gauta išvestis turėtų atrodyti maždaug taip:

www-duomenys 18247 12675 4 16:00? 00:00:00 php-fpm: baseinas www
šaknis 18272 17714 0 16:00 taškų / 0 00:00:00 grep –spalva = automatinis –įtraukti – dir = .bzr –įtraukti – dir = CVS –įtraukti – dir = .git –įtraukti – dir = .hg –įtraukti– dir = .svn www-data
www-data 31147 12770 0 Oct22? 00:05:51 nginx: darbuotojo procesas
www-duomenys 31148 12770 0 Oct22? 00:00:00 nginx: talpyklos tvarkyklės procesas

Yra būdas pašalinti komandinę eilutę, kurioje yra grep procesai. Tam reikia naudoti $ ps -ef | grep www-data | grep -v grep komanda.

Grep žodžių paieška

Galite naudoti grep komandas, norėdami ieškoti konkrečių žodžių sistemos failuose. Tiesą sakant, nereikia įvesti viso žodžio. Pavyzdžiui, galite tiesiog naudoti gnu, o komanda išveda visus žodžius, kuriuose yra šios trys raidės. Komandos sintaksė yra:

$ grep gnu / usr / share / žodžiai

Vykdydami komandą, jūsų išvestis turėtų atrodyti taip:

cygnus
gnu
tarpregnumas
lgnu9d
lignum
magnum
magnusonas
sfagnumas
sparno riešutas

Kita vertus, galite ieškoti tik to žodžio ar raidžių eilutės ir neįtraukti viso kito. Norėdami tai padaryti, turite pridėti -w arba –word –regexp prie sintaksės. Tokiu atveju komandos pavyzdys atrodo taip - $ grep -w gnu / usr / share / words .

Pastaba: gramatikos tikslais kai kurių komandų pabaiga yra visiškai sustojusi. „Grep“ jums nereikia šio skyrybos ženklo. Išskirkite jį, kai nukopijuosite / įklijuosite komandą.

Ar Grep yra jautri?

Pagal numatytuosius nustatymus visos grep komandos yra didžiosios ir mažosios raidės. Tai reiškia, kad naudodami mažąsias ir didžiąsias raides, pati komanda pasikeis. Tačiau prie komandos eilutės galite pridėti - i ( - ignoruoti didžiosios ir mažosios raidės) ir leisti sistemai ieškoti tiek didžiosios, tiek mažosios raidės.

Pavyzdžiui, jūsų įvesties komanda gali atrodyti taip: $ grep -i Zebra / usr / share / words . Tai leidžia išvestis atitikti bet kokią didžiųjų ir mažųjų raidžių kombinaciją ieškant zebrų.

Eilių numeriai

Norėdami nustatyti eilučių skaičių su eilute, atitinkančia tam tikrą paieškos modelį, naudokite parinktį –line-number arba tiesiog –n . Dėl to jūs gaunate standartinį išėjimą su eilutės numeriu priešais jį.

Tiksli komanda gali atrodyti taip: $ grep -n 10000 / etc / services . Vykdydami išvestis pateikia visas atitiktis, kurias randa 10000 eilučių. Peržiūrėkite toliau pateiktą pavyzdį:

10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp

Failai aplankuose

Vietoj failo pavadinimo galite įdėti žvaigždutę už grep komandos. Vėl naudojant gnu kriterijus, komanda atrodo taip, kaip $ grep gnu *, o išvestyje pateikiami failai, kuriuose yra gnu . Svarbu atkreipti dėmesį, kad tokia komanda grąžina eilutę.

Pastaba: grep reikšme eilutė nurodo simbolių seką, kuri trunka iki nurodytos pertraukos. Jei nepatikslinsite paieškos, išvestyje gali būti visos informacijos pastraipos.

Ženkite kitą žingsnį su Grep

Šis vadovas tiesiog subraižo tai, ką galite padaryti su grep. Gali prireikti šiek tiek laiko, kad gautumėte visus šansus ir pabaigas, tačiau sintaksė vadovaujasi gana paprastu principu. Vykdydami praktiką galėsite patobulinti savo paieškas iki tobulumo, su failo pavadinimu ar be jo.

Kaip grep be failo pavadinimo