GREP(1) GREP(1)
grep, egrep, fgrep - muestran lneas que concuerdan con un patrn
grep [-AB] nm] [-CEFGVbchiLlnqsvwxyUu] [[-e ] patrn | -f fichero]
[--extended-regexp] [--fixed-strings] [--basic-regexp] [--regexp=PATRN]
[--file=FICHERO] [--ignore-case] [--word-regexp] [--line-regexp]
[--line-regexp] [--no-messages] [--invert-match] [--version] [--help]
[--byte-offset] [--line-number] [--with-filename] [--no-filename]
[--quiet] [--silent] [--files-without-match] [--files-with-matcces]
[--count] [--before-context=NUM] [--after-context=NUM] [--context]
[--binary] [--unix-byte-offsets] ficheros...
Grep busca en la entrada, bien en la que se le especifica con nombres
de ficheros o bien en la entrada estndar si no se le dan dichos nombres
o si uno de stos consiste en -, lneas que concuerden o coincidan con el
patrn dado. Si no se dice otra cosa, grep muestra las lneas que con-
cuerden.
Hay tres grandes variantes de grep, controladas por las siguientes
opciones:
-G, --basic-regexp
Interpreta patrn como una expresin regular bsica (vea ms abajo).
ste es el comportamiento predeterminado.
-E, --extended-regexp
Interpreta patrn coma una expresin regular extendida (vea ms
adelante).
-F, --fixed-strings
Interpreta patrn como una lista de cadenas de caracteres fijas,
separadas por saltos de lnea; se busca la concordancia de una
cualquiera de ellas.
Adems, estn disponibles dos programas que son variantes de ste: egrep y
fgrep. egrep es similar (pero no idntico) a grep -E, y es compatible
con el egrep histrico de Unix. fgrep es lo mismo que grep -F.
Todas las variantes de grep entienden las siguientes opciones:
-nm Las lneas concordantes se mostrarn acompaadas de nm lneas ante-
riores y posteriores. Sin embargo, grep nunca mostrar cualquier
lnea dada ms de una vez.
-A nm , --after-context=NM
Muestra nm lneas de contexto despus de las que concuerden con el
patrn.
-B nm , --before-context=NM
Muestra nm lneas de contexto antes de las que concuerden con el
patrn.
-C, --context
Equivalente a -2.
-V, --version
Muestra el nmero de versin de grep en la salida estndar de
errores. Este nmero de versin debera incluirse en todos los
informes de fallos (vea ms abajo).
-b, --byte-offset
Muestra el desplazamiento en bytes desde el principio del
fichero de entrada antes de cada lnea de salida.
-c, --count
Suprime la salida normal; en su lugar muestra el nmero de lneas
que concuerdan con el patrn para cada fichero de entrada. Con
la opcin -v, --invert-match (vea ms abajo), muestra el nmero de
lneas que no concuerden.
-e patrn,--regexp=PATRN
Emplea patrn como el patrn; til para proteger patrones que
comiencen con -.
-f fichero,--file=FICHERO
Obtiene el patrn de fichero.
-h, --no-filename
Suprime la impresin de los nombres de ficheros antes de las
lneas concordantes en la salida, cuando se busca en varios
ficheros.
-i, --ignore-case
No hace caso de si las letras son maysculas o minsculas ni en el
patrn ni en los ficheros de entrada.
-L, --files-without-match
Suprime la salida normal; en su lugar muestra el nombre de cada
fichero de entrada donde no se encuentre ninguna concordancia y
por lo tanto de cada fichero que no producira ninguna salida. La
bsqueda se detendr al llegar a la primera concordancia.
-l, --files-with-matches
Suprime la salida normal; en su lugar muestra el nombre de cada
fichero de entrada que producira alguna salida. La bsqueda se
detendr en la primera concordancia.
-n, --line-number
Prefija cada lnea de salida con el nmero de lnea de su fichero
de entrada correspondiente.
-q, --quiet
Silencioso; suprime la salida normal. La bsqueda finaliza en la
primera concordancia.
-s, --silent
Suprime los mensajes de error sobre ficheros que no existen o no
se pueden leer.
-v, --invert-match
Invierte el sentido de la concordancia, para seleccionar las
lneas donde no las hay.
-w, --word-regexp
Selecciona solamente aquellas lneas que contienen concordancias
que forman palabras completas. La comprobacin consiste en que la
cadena de caracteres concordante debe estar al principio de la
lnea o precedida por un carcter que no forme parte de una pal-
abra. De forma similar, debe estar o al final de la lnea o ser
seguida por un carcter no constituyente de palabra. Los carac-
teres que se consideran como parte de palabras son letras, dgi-
tos y el subrayado.
-x, --line-regexp
Selecciona solamente aquellas concordancias que constan de toda
la lnea.
-y Sinnimo obsoleto de -i.
-U, --binary
Trata el(los) fichero(s) como binario(s). De forma predetermi-
nada, bajo MS-DOS y MS-Windows, grep intenta adivinar el tipo
del fichero mirando los contenidos de los primeros 32 kB ledos
de l. Si grep decide que el fichero es de texto, quita los car-
acteres CR (retorno de carro) de los contenidos originales del
fichero (para que las expresiones regulares con ^ y $ funcionen
correctamente). Al especificar -U deshabilitamos este intento de
adivinacin del tipo del fichero, haciendo que todos se lean y
pasen al mecanismo de concordancia tal cuales; si el fichero lo
es de texto y tiene al final de cada lnea el par de caracteres
CR/LF, esto har que algunas expresiones regulares fallen. Esta
opcin slo tiene sentido en MS-DOS y MS-Windows.
-u, --unix-byte-offsets
Informa de desplazamientos de bytes al estilo de Unix. Esta
opcin hace que grep muestre los desplazamientos de bytes como si
el fichero fuera de texto al estilo de Unix; o sea, sin los car-
acteres CR al final de cada lnea. Esto producir resultados
idnticos a ejecutar grep en un sistema Unix. Esta opcin no tiene
efecto a menos que se d tambin la opcin -b; slo tiene sentido en
MS-DOS y MS-Windows.
Una expresin regular es un patrn que describe un conjunto de cadenas de
caracteres. Las expresiones regulares se construyen de forma anloga a
las expresiones aritmticas, combinando expresiones ms pequeas mediante
ciertos operadores para formar expresiones complejas.
El programa grep entiende dos versiones diferentes de sintaxis para las
expresiones regulares: la ``bsica'' y la ``extendida''. En la versin de
grep de GNU, no hay diferencia en usar una u otra en cuanto a la fun-
cionalidad disponible. En otras implementaciones, las expresiones regu-
lares bsicas son menos potentes. La siguiente descripcin se aplica a
expresiones regulares extendidas; las diferencias con las bsicas se
resumen a continuacin.
Los bloques de construccin fundamentales son las expresiones regulares
que concuerdan con un solo carcter. La mayora de los caracteres,
incluyendo todas las letras y dgitos, son expresiones regulares que
concuerdan consigo mismos. Cualquier meta-carcter con un significado
especial debe ser protegido precedindolo con una barra inclinada
inversa.
Una lista de caracteres rodeados por [ y ] concuerda con cualquier
carcter de esa lista; si el primer carcter de la lista es el acento
circunflejo ^ entonces concuerda con cualquier carcter de fuera de la
lista. Por ejemplo, la expresin regular [0123456789] concuerda con
cualquier carcter dgito. Se puede especificar un rango de caracteres
ASCII dando el primero y el ltimo, separados por un guin. Finalmente,
estn predefinidas ciertas clases de caracteres, con un nombre para cada
una. Estos nombres son auto-explicativos, y son [:alnum:], [:alpha:],
[:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:],
[:space:], [:upper:], y [:xdigit:]. Por ejemplo, [[:alnum:]] significa
(en ingls) [0-9A-Za-z], salvo que la ltima forma depende de que la cod-
ificacin de caracteres siga el estndar ISO-646 o ASCII, mientras que la
primera es transportable. (Observe que los corchetes en estos nombres
de clases son parte de los nombres simblicos, y deben incluirse adems
de los corchetes que delimitan la lista entre corchetes.) La mayor
parte de los meta-caracteres pierden su significado especial dentro de
estas listas. Para incluir un ] literal, pngalo el primero de la lista.
De forma similar, para incluir un ^ literal, pngalo en cualquier sitio
menos el primero. Finalmente, para incluir un - literal, pngalo el
ltimo.
El punto . concuerda con cualquier carcter solo. El smbolo \w es un
sinnimo de [[:alnum:]] y \W lo es de [^[:alnum]].
El acento circunflejo ^ y el signo del dlar (y del escudo portugus) $
son meta-caracteres que respectivamente concuerdan con la cadena vaca
al comienzo y al final de una lnea. Los smbolos \< y \> respectiva-
mente concuerdan con la cadena vaca al principio y al final de una pal-
abra. El smbolo \b concuerda con la cadena vaca al borde de una pal-
abra, y \B concuerda con la cadena vaca supuesto que no est en el
extremo de una palabra.
Una expresin regular que concuerde con un solo carcter puede ser
seguida por uno de estos varios operadores de repeticin:
? El elemento precedente es opcional y concuerda como mucho una
vez.
* El elemento precedente concordar cero o ms veces.
+ El elemento precedente concordar una o ms veces.
{n} El elemento precedente concuerda exactamente n veces.
{n,} El elemento precedente concuerda n o ms veces.
{,m} El elemento precedente es opcional y concuerda como mucho m
veces.
{n,m} El elemento precedente concuerda como poco n veces, pero no ms
de m veces.
Dos expresiones regulares pueden concatenarse; la expresin regular
resultante concuerda con cualquier cadena formada mediante la concate-
nacin de dos subcadenas que concuerdan respectivamente con las subex-
presiones concatenadas.
Dos expresiones regulares pueden juntarse mediante el operador infijo
|; la expresin regular resultante concuerda con cualquier cadena que
concuerde con cualquiera de las subexpresiones.
La repeticin tiene precedencia sobre la concatenacin, la cual a su vez
tiene precedencia sobre la alternancia. Una subexpresin entera puede
ser encerrada entre parntesis para subvertir estas reglas de preceden-
cia.
La retrorreferencia \n, donde n es un dgito simple, concuerda con la
subcadena que previamente concord con la n-sima subexpresin entre parn-
tesis de la expresin regular.
En las expresiones regulares bsicas, los meta-caracteres ?, +, {, |, (,
y ) pierden su significado especial; en su lugar emplee las versiones
protegidas mediante la barra inversa \?, \+, \{, \|, \(, y \).
En egrep, el meta-carcter { pierde su significado especial; en su lugar
emplee \{.
Normalmente, el status de salida es 0 si se encuentran concordancias, y
1 si no se encuentran. (La opcin -v invierte el sentido del status de
salida.) El status de salida es 2 si haba errores de sintaxis en el
patrn, si los ficheros de entrada eran inaccesibles, o en caso de otros
errores del sistema.
Enve informes sobre fallos por correo electrnico a la direccin bug-gnu-
utils [AT] prep.edu. Asegrese de incluir la palabra ``grep'' en algn
sitio del campo ``Asunto:'' (``Subject:'').
Nmeros de repeticin grandes en la construccin {m,n} pueden hacer que
grep emplee grandes cantidades de memoria. En adicin a esto, ciertas
otras obscuras expresiones regulares requieren tiempo y espacio expo-
nenciales, y pueden hacer que grep se quede sin memoria.
Las retrorreferencias son muy lentas, y pueden requerir un tiempo expo-
nencial.
Proyecto GNU 10 Septiembre 1992 GREP(1)