grep

Linux.fista
(Ohjattu sivulta Egrep)
Siirry navigaatioon Siirry hakuun

grep-komentorivikomennolla voi etsiä ja tulostaa tiettyä säännöllistä lauseketta vastaavan rivin tai merkkijonon.

Käyttö[muokkaa]

Näytetään kaikki nykyisen hakemiston ja sen alihakemistojen (valitsin -R) tiedostojen rivit, joilla esiintyy merkkijono foobar.

grep foobar * -R

Näytetään kaikkien nykyisen hakemiston .html-päätteisten tiedostojen rivit, jotka alkavat (merkki ^, katso säännöllinen lauseke) merkkijonolla foobar.

grep "^foobar" *.html

Näytetään rivit jotka alkavat isolla alkukirjaimella ja pitävät sisällään merkkijonon foobar muualla kuin rivin lopussa.

grep "^[A-Z].*foobar..*$" *

Näytetään putkitusta hyväksi käyttäen kaikki tiedostot nykyisestä hakemistosta ja sen alihakemistoista joiden nimessä esiintyy jokin merkkijonoista foo, bar ja asdf. Grepille voi syöttää useita säännöllisiä lausekkeita valitsimen -e avulla.

ls -R | grep -e foo -e bar -e asdf

Näytetään file.conf-tiedoston sisältö ilman #-alkuisia ja tyhjiä rivejä, mikä on usein näppärää pitkiä asetustiedostoja tarkastellessa. Valitsin -v tarkoittaa, että grep jättää pois ne rivit, jotka täsmäävät annettuun lausekkeeseen.

grep -v -E '^\#|^$' file.conf

Etsitään tiedostosta elaimet rivit, joilla lukee kissa ja tulostaa myös viisi tätä seuraavaa riviä (-A5) ja neljä edeltävää (-B4).

cat elaimet | grep -A5 -B4 kissa

Grepiä voidaan myös kutsua komennoilla egrep ja fgrep, jotka vastaavat komentoja grep -E ja grep -F.

Lisää grep-komennon käyttötapoja löytyy Komentorivivinkkejä-sivulta. Grepin kanssa hyödynnetään myös usein mahdollisuutta putkittaa komentoja.

Zgrep[muokkaa]

Gzipattujen tiedostojen sisältä voi etsiä komennolla zgrep. Esimerkiksi:

zgrep -e foo bar.gz

Komennot zegrep ja zfgrep vastaavat komentoja egrep ja fgrep pakatuille tiedostoille.

Katso myös[muokkaa]

Aiheesta muualla[muokkaa]