grep

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

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 deasemenea 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 (1 august 2000). Grep: Searching for a Pattern. Iuniverse Inc. ISBN 0-595-10039-2 
  • Hume, Andrew A tale of two greps, 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ă]


 v  d  m  Programe în linia de comandă pentru Unix (mai multe)
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