Locked History Actions

Skirtumas „Global/Regular Expression Print“

Pakeitimai tarp versijų 1 ir 2
Versija 1 nuo 2009-05-10 08:24:43
Dydis: 457
Redaktorius: andriusplatakis
Komentaras:
Versija 2 nuo 2009-05-10 08:56:04
Dydis: 4033
Redaktorius: andriusplatakis
Komentaras:
Pašalinimai yra pažymėti taip. Pridėjimai yra pažymėti taip.
Eilutė 12: Eilutė 12:
##Plačiau paaiškinkite terminą, juo nusakomo objekto svarbą, veikimo principą ir tt. 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
}}}

Žodis angliškai

Global / Regular Expression Print

Santrumpa

GREP

Žodis Lietuviškai

Globalių - reguliarių išraiškų spausdinimas.


Apibrėžimas

Tai Linux komanda, skirta teksto paieškai bylose.


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