Anonim

La impressió regular d'expressió regular o simplement grep és una de les comandes més versàtils i habituals dels sistemes Unix i Linux. La comanda busca fitxers d'entrada simples o múltiples i línies de patrons coincidents. Com a resultat, obté una sortida estàndard amb les línies coincidents.

Si no especifiqueu un fitxer, grep utilitza l’entrada estàndard per a les lectures i és molt probable que sigui la sortida d’un altre comandament. En general, grep presenta una sintaxi senzilla tant si la feu servir amb o sense el nom de fitxer.

Aquest article us proporciona una visió general de la sintaxi grep i algunes ordres bàsiques que podeu utilitzar amb o sense el nom del fitxer.

Abans de començar

Totes les ordres grep segueixen la mateixa sintaxi i cada paràmetre té una funció específica. Aquí teniu la línia de mostra:

grep PATTERN

Podeu utilitzar diverses opcions en grep per controlar la sortida de l'ordre i el número comença a zero. PATTERN indica el patró de cerca que voleu aplicar. Pel que fa al fitxer, aquí és on van el nom o els noms del fitxer, però el paràmetre es pot definir a zero.

Cerca de cadena en la sortida de comandaments

Tal com s'indica, no cal que utilitzeu fitxers d'entrada específics. La sortida d'una altra ordre es pot utilitzar a grep per obtenir línies que coincideixin exactament amb un patró. Es pot utilitzar per determinar quins processos estan actius en el sistema. Aquesta és la sintaxi de l’ordre de l’exemple:

$ ps -ef | grep www-data

La sortida que obtindreu hauria de tenir un aspecte així:

www-data 18247 12675 4 16:00? 00:00:00 php-fpm: piscina www
arrel 18272 17714 0 16:00 pts / 0 00:00:00 grep –color = auto –exclude-dir = .bzr –exclude-dir = CVS –exclude-dir = .git –exclude-dir = .hg –exclude- dir = .svn www-data
www-data 31147 12770 0 oct22? 00:05:51 nginx: procés del treballador
www-data 31148 12770 0 oct22? 00:00:00 nginx: procés de gestor de caché

Hi ha una manera d’excloure la línia d’ordres que presenta els processos grep. Per a això, heu d'utilitzar $ ps -ef | grep www-data | ordre grep -v grep .

Recerca de paraules Grep

Podeu utilitzar ordres grep per cercar paraules específiques als fitxers del vostre sistema. De fet, no cal escriure una paraula sencera. Només podeu utilitzar gnu, per exemple, i l'ordre emet totes les paraules que tenen aquestes tres lletres. La sintaxi de la comanda és:

$ grep gnu / usr / share / words

Després d'executar l'ordre, la vostra sortida hauria de tenir un aspecte així:

cygnus
gnu
interregne
lgnu9d
lignum
magnum
magnuson
sphagnum
aleta

D'altra banda, podeu cercar només la paraula específica o la cadena de lletres i excloure tota la resta. Per a això, cal afegir -w o –word - regexp a la sintaxi. En aquest cas, l'exemple de comanda sembla: $ grep -w gnu / usr / share / words .

Nota: amb finalitats gramaticals, algunes de les ordres tenen un punt final al final. No necessiteu aquest signe de puntuació per a grep. Exclou-la quan copieu / enganxeu la comanda.

El cas de Grep és sensible?

Totes les ordres grep són majúscules i minúscules. Això significa que l'ús de caràcters en minúscula i en majúscules fa una diferència en el propi comandament. Tanmateix, podeu afegir - i ( - ignore - majúscules ) a la línia de comandaments i permetre que el sistema cerqui paraules majúscules i minúscules.

Per exemple, pot ser que el comando d'entrada sembli $ grep -i Zebra / usr / share / words . Permet que la sortida coincideixi amb qualsevol combinació de majúscules i minúscules quan cerqui zebra.

Números de línia

Utilitzeu l'opció –line-number o just -n per determinar el nombre de línies amb una cadena que coincideix amb un patró de cerca particular. Com a resultat, obtindreu una sortida estàndard amb un número de línia al seu davant.

L'ordre exacte pot semblar així: $ grep -n 10000 / etc / services . En executar-la, la sortida proporciona totes les coincidències que es trobin en 10000 línies. Consulteu la mostra següent:

10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp

Arxius de carpetes

Podeu posar un asterisc darrere d'una ordre grep en lloc d'un nom de fitxer. Si utilitzeu de nou els criteris gnu, l'ordre sembla $ grep gnu * i la sortida mostra els fitxers que contenen gnu . És important tenir en compte que aquest tipus d'ordres retorna una línia.

Nota: amb grep, una línia fa referència a una seqüència de caràcters que s'executen fins a una pausa especificada. A menys que restringiu la cerca, la sortida pot contenir paràgrafs sencers d'informació.

Feu el següent pas amb Grep

Aquesta guia només rasca la superfície del que podeu fer amb grep. Es pot trigar una estona a obtenir totes les probabilitats i finalitats, però la sintaxi segueix un principi bastant simple. I amb una mica de pràctica, podreu perfeccionar les cerques a la perfecció, amb o sense el nom del fitxer.

Com executar un grep sense el nom del fitxer