Globalni tisk z rednimi izrazi ali samo grep je eden najbolj vsestranskih in najpogostejših ukazov v sistemih Unix in Linux. Ukaz išče eno ali več vhodnih datotek in ujemajočih se vzorčnih vrstic. Kot rezultat dobite standardni izhod z ujemajočimi se črtami.
Če datoteke ne določite, grep uporablja standardni vhod za odčitke in najverjetneje bo izpis drugega ukaza. Na splošno grep vsebuje enostavno skladnjo, ne glede na to, ali jo uporabljate z imenom datoteke ali brez nje.
Ta članek vam nudi hiter pregled sintakse grep in nekaj osnovnih ukazov, ki jih lahko uporabite z ali brez imena datoteke.
Preden začnete
Vsi ukazi grep sledijo isti sintaksi in vsak parameter ima določeno funkcijo. Tukaj je vzorčna vrstica:
grep PATTERN
Za krmiljenje izhoda ukaza lahko uporabite število OPTIONS v grep-u in število se začne pri nič. PATTERN označuje vzorec iskanja, ki ga želite uporabiti. Kar zadeva datoteko FILE, gre tu v ime ali imena datoteke, vendar je mogoče za parameter nastaviti nič.
Iskanje niza v izhodu ukazov
Kot je navedeno, vam ni treba uporabljati posebnih vhodnih datotek. Izhod drugega ukaza lahko uporabite v grep, da dobite vrstice, ki ustrezajo vzorcu. S tem lahko določite, kateri procesi so aktivni v sistemu. To je vzorčna sintaksa ukazov:
$ ps -ef | grep www-data
Rezultat, ki ga dobite, mora izgledati nekako takole:
www-podatki 18247 12675 4 16:00? 00:00:00 php-fpm: bazen www
root 18272 17714 0 16:00 pts / 0 00:00:00 grep –color = auto –izključi-dir = .bzr –exclude-dir = CVS –exclude-dir = .git –exclude-dir = .hg –exclude- dir = .svn www-data
www-podatki 31147 12770 0 okt22? 00:05:51 nginx: proces dela
www-podatki 31148 12770 0 okt22? 00:00:00 nginx: postopek upravljanja predpomnilnika
Obstaja način, da izključite ukazno vrstico, ki vsebuje grep procese. Za to morate uporabiti $ ps -ef | grep www-data | ukaz grep -v grep .
Grepno iskanje besed
Z ukazi grep lahko iščete določene besede v datotekah v vašem sistemu. Pravzaprav ni treba vnašati celotne besede. Lahko uporabite na primer gnu in ukaz odda vse besede, ki vsebujejo te tri črke. Sintaksa ukaza je:
$ grep gnu / usr / share / besede
Po izvedbi ukaza naj bo vaš izhod videti nekako takole:
cygnus
gnu
interregnum
lgnu9d
lignum
magnum
magnuson
sphagnum
kristal
Po drugi strani pa lahko iščete samo tisto točno določeno besedo ali niz črk in izključite vse ostalo. Za to morate v skladnjo dodati -w ali –word - regexp . V tem primeru je primer ukaza videti tako - $ grep -w gnu / usr / share / words .
Opomba: Za slovnične namene so nekateri ukazi na koncu popolnoma ustavljeni. To ločilo ne potrebujete za grep. Izključite ga, ko kopirate / prilepite ukaz.
Je Grep Case občutljiv?
Vsi ukazi grep so privzeto občutljivi z velikimi in velikimi črkami. To pomeni, da uporaba malih in velikih črk spreminja sam ukaz. Vendar lahko v ukazno vrstico dodate - i ( - ignore - case ) in dovolite sistemu, da išče tako besede velike kot male črke.
Na primer, lahko vaš vhodni ukaz izgleda takole $ grep -i Zebra / usr / share / besede . Izhod omogoča, da se med iskanjem zebre ujema s katero koli kombinacijo velikih in malih črk.
Številke vrstice
Z možnostjo –line-number ali samo -n določite število vrstic z nizom, ki ustreza določenemu vzorcu iskanja. Kot rezultat dobite standardni izhod s številko vrstice pred njim.
Natančen ukaz lahko izgleda takole: $ grep -n 10000 / etc / services . Po izvedbi izhod zagotovi vsa ujemanja v 10000 vrsticah. Oglejte si spodnji vzorec:
10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp
Datoteke v mapah
Zvezdico lahko umestite za ukaz grep namesto imena datoteke. Po ponovni uporabi meril gnu je ukaz videti kot ta $ grep gnu * in izhodni seznam datotek, ki vsebujejo gnu . Pomembno je upoštevati, da ta vrsta ukaza vrne vrstico.
Opomba: Z vrstico se vrstica nanaša na zaporedje znakov, ki poteka do določenega preloma. Če ne natančno določite iskanja, lahko izhodni podatki vsebujejo celotne odstavke informacij.
Naredite naslednji korak z Grepom
Ta priročnik samo opraska površino, kar lahko storite z grepanjem. Lahko traja nekaj časa, da dobimo vse kvote in konce, vendar skladnja sledi precej preprostemu načelu. Z nekaj prakse boste lahko izboljšali svoja iskanja do popolnosti, z ali brez imena datoteke.
