grep
grep este o comandă UNIX pentru căutare de text. Denumirea vine de la primele litere ale „global/regular expression/print”, ce reprezintă o serie de comenzi pentru editoare de text precum ed. Comanda "grep" caută în fișiere sau în intrarea standard liniile care corespund unei expresii regulate date și le scrie către ieșirea standard.
Utilizare
[modificare | modificare sursă]Acesta este un exemplu comun de folosire a lui "grep":
grep apple fruitlist.txt
În acest caz , "grep" afișează toate liniile care conțin "apple" din fișierul "fruitlist.txt", fără a ține seama de separarea între cuvinte. Astfel, liniile ce conțin secvențele "pineapple" sau "apple" sunt de asemenea afișate. Implicit, comanda "grep" este sensibilă la majuscule, deci liniile ce conțin "Apple" (scris cu litera mare A) nu vor fi afișate, cu excepția situației în care acestea ar conține altundeva și secvența "apple".
O expresie regulată poate fi folosită pentru a efectua interogări mai complicate. Următoarea comandă afișează toate liniile din fișierul fruitlist.txt care încep cu litera a (^), urmat de orice caracter (.), apoi de literele ple.
grep ^a.ple fruitlist.txt
Așa cum s-a menționat mai sus, termenul de "grep" provine de la modul de utilizare a editoarelor de text asemnănătoare cu ed. Înainte ca grep să fi fost creat ca un program de sine stătător, același efect ar fi putut fi obținut prin:
ed fruitlist.txt
g/^a.ple/p
q
Aici, linia a doua este comanda dată editorului pentru a căuta liniile ce se potrivesc cu expresia regulată specificată și pentru a le afișa. Comanda de pe ultima linie are ca efect terminarea programului.
Ca majoritatea comenzilor Linux , "grep" acceptă diverși parametri la linia de comandă. Spre exemplu, următoarea comandă afișează toate liniile conținând "apple" , indiferent de capitalizare.
grep -i apple fruitlist.txt
Argumentul "-i" configurează programul grep să lucreze în modul insensibil la majuscule, considerând astfel literele mari ca litere mici.
Următoarea comandă afișează toate liniile care conțin "apple" ca un cuvânt de sine stătător (astfel, "pineapple" sau "apples" nu se vor potrivi):
grep -w apple fruitlist.txt
De remarcat că și liniile din fruitlist.txt ce conțin cuvântul de "apple" urmat de caracterul cratimă (-) se vor potrivi:
cat fruitlist.txt
apple
apples
pineapple
apple-
apple-fruit
fruit-apple
grep -w apple fruitlist.txt
apple
apple-
apple-fruit
fruit-apple
Variații
[modificare | modificare sursă]Există implementări nenumărate și diverse variații ale programului grep disponibile pentru multe sisteme de operare. Unele dintre primele variante ale lui grep au fost egrep și fgrep.
Mod de utilizare ca un verb de conversație
[modificare | modificare sursă]În decembrie 2003, Oxford English Dictionary Online adaugă intrările pentru "grep" atât ca un substantiv și un verb.
Vezi și
[modificare | modificare sursă]Referințe
[modificare | modificare sursă]- Alain Magloire (). Grep: Searching for a Pattern. Iuniverse Inc. ISBN 0-595-10039-2.
- Hume, Andrew A tale of two greps[nefuncțională], Software—Practice and Experience 18, ( 11 ), 1063–1072 ( 1988).
- Hume, Andrew Grep wars: The strategic search initiative. In Peter Collinson, editor, Proceedings of the EUUG Spring 88 Conference, pages 237–245, Buntingford, UK, 1988. European UNIX User Group.
Legături externe
[modificare | modificare sursă]Wikibooks are o carte despre subiectul: grep |
- en Pagină de manual
- en The grep command [nefuncțională] tutorial for Linux / UNIX.
- en The grep Command – by The Linux Information Project (LINFO)
- en "The Treacherous Optimization" Arhivat în , la Wayback Machine. – article on tradeoffs in grep to favor best-case over worst-case scenarios
- en Egrep for linguists Arhivat în , la Wayback Machine. An introduction to egrep
- en Tony Abou-Assaleh's list of Greps[nefuncțională]
- en Greppin' in the GNU World Lab Google Code University
- en Top 'grep' commands - Usage examples Arhivat în , la Wayback Machine.
- en Agent Ransack for Windows
linia de comandă pentru Unix (mai multe) | Programe în|||
Management de fișiere: | cat | cd | chmod | chown | chgrp | cksum | cmp | cp | du | df | file | fsck | ln | ls | lsof | mkdir | mount | mv | pwd | rm | rmdir | split | touch | ||
Management de procese: | at | chroot | cron | exit | kill | killall | nice | pgrep | pidof | pkill | ps | pstree | sleep | time | top | wait | ||
Management utilizator/mediu: | env | finger | id | mesg | passwd | su | sudo | uname | uptime | w | wall | who | whoami | write | ||
Procesare text: | awk | comm | cut | ed | ex | fmt | head | iconv | join | less | more | paste | sed | sort | tac | tail | tr | uniq | wc | xargs | ||
Programare Shell: | basename | echo | expr | false | printf | test | true | unset | Imprimare: lp | |
Communicații: inetd | netstat | ping | rlogin | traceroute |
Căutare: find | grep | strings |
Diverse: banner | bc | cal | dd | man | size | yes |