= Žodis angliškai =
Global / Regular Expression Print

== Santrumpa ==
GREP

== Žodis Lietuviškai ==
Globalių - reguliarių išraiškų spausdinimas.

----
== Apibrėžimas ==
GREP yra Unix sistemos komandinės eilutės teksto paieškos įrankis. Pavadinimas kilo nuo ed redaktoriaus komandos g/re/p (angl. global / regular expression / print). GREP komanda ieško failų arba standartinės įvesties eilučių, atitinkančių duotą išraišką, ir atvaizduoją per programos numatytąją išvestį.

----
== Paaiškinimai ==
Dažniausiai komandos grep naudojamos vėliavėlės yra šios:

 * -i nepaisyti didžiųjų ir mažųjų raidžių skirtumo;
 * -v išvesti į ekraną tik tas eilutes, kuriose nėra ieškomo teksto;
 * -c išvesti į ekraną tik sutampančių eilučių skaičių;
 * -n išvesti į ekraną eilutės numerį ir su ieškomu tekstu sutampančią eilutę;
 * -w išvesti į ekraną eilutes, kuriose yra pilnas sutampantis žodis;
 * -E ieškoti sudėtingų teksto išraiškų (Extended).

Ieškomas tekstas gali būti aprašomas įvairiai. Ieškomos išraiškos gali būti ir labai sudėtingos, ir visai paprastos. Dažniausiai naudojamos tokios ieškomo teksto išraiškos:

 * `abc` ieško teksto, kur frazė “abc” pasikartoja bet kurioje vietoje;
 * `^abc` ieško eilučių, kurios prasideda “abc”;
 * `abc$` ieško eilučių, kurios baigiasi “abc”;
 * `a..c` ieško eilučių, kuriose “a” ir “c” yra atskirtos bet kokiais dviem simboliais (taškai atitinka simbolių skaičių);
 * `a.*c` ieško eilučių, kuriose “a” ir “c” yra atskirtos bet kokiu simbolių skaičiumi (taškas-žvaigždutė reiškia nulį ir daugiau simbolių).

----
== Pavyzdžiai ==
Tarkime, turime tokią tekstinę bylą `poema.txt`:

{{{
Mary had a little lamb
Mary fried a lot of spam
Jack ate a Spam sandwich
Jill had a lamb spamwich
}}}
---

Rasti visas eilutes, kuriose yra žodis `spam` (atsižvelgiant į didžiąsias ir mažąsias raides):

{{{
grep ’spam’ poema.txt
}}}
Gausime:

{{{
Mary fried a lot of spam
Jill had a lamb spamwich
}}}
---

Rasti visas eilutes, kuriose yra žodis `spam` (neatsižvelgiant į didžiąsias ir mažąsias raides):

{{{
grep -i ’spam’ poema.txt
}}}
Gausime:

{{{
Mary fried a lot of spam
Jack ate a Spam sandwich
Jill had a lamb spamwich
}}}
---

Rasti visas eilutes, kuriose yra pilnas žodis `spam`:

{{{
grep -w ’spam’ poema.txt
}}}
Gausime:

{{{
Mary fried a lot of spam
}}}
---

Rasti eilučių skaičių, kuriose yra žodis `spam` (neatsižvelgiant į didžiąsias ir mažąsias raides):

{{{
grep -ic ’spam’ poema.txt
}}}
Gausime:

{{{
3
}}}
---

Rasti visas eilutes, kuriose nėra žodžio `spam` (neatsižvelgiant į didžiąsias ir mažąsias raides):

{{{
grep -i -v ’spam’ poema.txt
}}}
Gausime:

{{{
Mary had a little lamb
}}}
---

Rasti visas eilutes, kurios prasideda žodžiu `Mary`:

{{{
grep ’^Mary’ poema.txt
}}}
Gausime:

{{{
Mary had a little lamb
Mary fried a lot of spam
}}}
---

Rasti visas eilutes, kurios baigiasi `ich`:

{{{
grep ’ich$’ poema.txt
}}}
Gausime:

{{{
Jack ate a Spam sandwich
Jill had a lamb spamwich
}}}
---

Rasti visas eilutes, kuriose yra `had` ir `lamb`, o tarp jų bet koks kiekis simbolių:

{{{
grep ’had.*lamb’ poema.txt
}}}
Gausime:

{{{
Mary had a little lamb
Jill had a lamb spamwich
}}}
---

Rasti visas eilutes, kuriose yra žodžiai `Jack` arba `Jill`, arba abu kartu:

{{{
grep -E ’Jack|Jill’ poema.txt
}}}
Gausime:

{{{
Jack ate a Spam sandwich
Jill had a lamb spamwich
}}}
---

Išvesti į ekraną visas eilutes ir jų numerius, kuriose yra žodžiai `spam` arba `lamb`, arba abu kartu:

{{{
grep -E -n ’spam|lamb’ poema.txt
}}}
Gausime:

{{{
1:Mary had a little lamb
2:Mary fried a lot of spam
4:Jill had a lamb spamwich
}}}
---

Išvesti į ekraną visų bylų pavadinimus, kuriose yra žodis `spam`:

{{{
grep -l ’spam’ *.*
}}}
Gausime:

{{{
poema.txt
}}}
---

Detalesnis kitų `grep` komandos funkcijų aprašymas pateiktas Linux dokumentacijoje. Ją galima pasiekti terminale surinkus:

{{{
man grep
}}}
----
== Naudota literatūra ==
 1. http://www.opengroup.org/onlinepubs/9699919799/utilities/grep.html
 1. http://en.wikipedia.org/wiki/Grep
 1. http://www.linfo.org/grep.html
 1. http://www.gnu.org/software/grep/doc/grep_13.html#SEC13
 1. http://www.shell-fu.org/lister.php?tag=grep

----
 . CategoryŽodis