Grep: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
literówka w słowie expression
Linia 2:
'''grep''' – [[program komputerowy|program]] (komenda [[wiersz poleceń|wiersza poleceń]]), który służy do wyszukiwania w tekście i wyodrębniania linii zawierających ciąg znaków pasujący do podanego [[Wyrażenie regularne|wyrażenia regularnego]].
 
Pierwotnie grep był jednym z podstawowych programów wchodzących w skład systemu [[Unix]], lecz współcześnie jest obecny praktycznie w każdym systemie uniksopodobnym. Został napisany przez [[Ken Thompson|Kena Thompsona]]<ref>{{Cytuj książkę | nazwisko = Kernighan | imię = Brian | tytuł = The Unix Programming Environment | wydawca = Prentice Hall | rok = 1984 | strony = 102 | isbn = 0-13-937681-X | język = en}}</ref>, który wyodrębnił go jako samodzielny program z [[kod źródłowy|kodu źródłowego]] edytora o nazwie [[ed]] (również przez niego stworzonego). grep po raz pierwszy pojawił się w Unix Wersja 4 w roku 1973<ref>http://minnie.tuhs.org/cgi-bin/utree.pl?file=V4/man/man1/grep.1.</ref>.
 
Wersja o nazwie [[GNU]] grep została stworzona przez [[Free Software Foundation]] i charakteryzuje się m.in. zastosowaniem rozszerzonych wyrażeń regularnych oraz zgodnością z [[POSIX]]<ref name="posix">[http://www.opengroup.org/onlinepubs/009695399/utilities/grep.html grep] – Commands & Utilities Reference, [[Single UNIX Specification|The Single UNIX Specification]], Issue 7 from [[The Open Group]].</ref>.
</ref>.
 
== Nazwa ==
Nazwa „grep” jest [[Skrótowiec|akronimem]] od {{ang.|global regular expression print}}<ref name="allacronyms.com">{{Cytuj stronę | url = http://www.allacronyms.com/GREP/Global_Regular_Expression_Print/7625 | tytuł = grep – Global Regular Expression Print | opublikowany = allacronyms.com | język = pl | data dostępu = 2013-09-30}}</ref>.
 
Geneza nazwy grep może pochodzić z czasów stosowania edytora [[Ex (Unix)|ex]]. Komendą do wyszukiwania w całym edytowanym tekście ciągu znaków pasującego do wyrażenia regularnego jest
Linia 14 ⟶ 13:
ponieważ po angielsku wyrażenie regularne to (w skrócie) ''re'' (od ''regular expression'') to otrzymujemy '''''g/re/p'''''<ref name="Quigley" />.
 
== Użycie<ref name="gnu.org-grep">{{Cytuj stronę | url = http://www.gnu.org/software/grep/manual/grep.html | tytuł = GNU Grep 2.14 | opublikowany = gnu.org | język = pl | data dostępu = 2013-09-30}}</ref> ==
<code>$ grep ''opcje'' ''wzorzec'' ''plik/pliki''</code>
* '''opcje''' – opcje programu grep kontrolujące wejście, wyjście oraz sposób poszukiwania wzorca
Linia 55 ⟶ 54:
 
== Warianty ==
W niektórych systemach uniksowych istnieją także pochodne modyfikacje komendy grep o nazwach: '''egrep''', '''fgrep''', '''agrep''' czy '''rgrep'''. W poleceniu ''egrep'' (od {{ang.|extended grep}}) można używać rozszerzonej, w stosunku do „klasycznego” grepa, składni wyrażeń regularnych, a w poleceniu ''fgrep'' (od {{ang.|fast grep}} lub {{j|en|''fixed grep''}}) znaki specjalne używane w wyrażeniach regularnych używane są literalnie, np. znaki ''$'' i ''^'', nie mają specjalnego, symbolicznego znaczenia, lecz odpowiadają same sobie<ref name="Quigley">{{Cytuj książkę | nazwisko = | imię = Ellie | tytuł = UNIX Shells by Example | data = 2002 | wydawca = Prentice Hall | miejsce = Upper Saddle River, NJ | isbn = 9780130665386 | strony =}}</ref>. Kod źródłowy polecenia fgrep wykorzystuje [[algorytm Aho-Corasick]].
 
Współczesne implementacje programu grep np. GNU grep, funkcje osobnych wariantów, mają dostępne w postaci opcji podawanych przy wywołaniu programu (np. -E dla egrep i -F dla fgrep, co jest zapisane w normie POSIX<ref name="posix" />).
 
== Implementacje ==
Pierwszym programem do składu i łamania publikacji, w którym zastosowano zaawansowane wyszukiwanie tekstu oparte na grepie, jest [[Adobe InDesign]] w wersji CS3 z 2007 r. Znajduje się ono w oknie Znajdź/Zamień, w którym obok zakładki Text umieszczono zakładkę Grep. Silnik grepa w tym programie jest oparty na bibliotekach BOOST używanych w implementacjach języka Perl<ref>Marek Włodarz, ''GREP w InDesign CS3–CS5'', MAWArt, Warszawa 2011, ISBN 978-83-932542-0-0.</ref>.
 
== Zobacz też ==
* [[wieloznacznik]]
* [[wyrażenie regularne]]
* [[Pomoc:Wyrażenia regularne]]
 
{{przypisy}}