grep

GREP(1)                     General Commands Manual                    GREP(1)



NOMBRE
       grep, egrep, fgrep - muestran lÃneas que concuerdan con un patrón

SINOPSIS
       grep [-AB] núm] [-CEFGVbchiLlnqsvwxyUu] [[-e ] patrón | -f fichero]
       [--extended-regexp] [--fixed-strings] [--basic-regexp]
       [--regexp=PATRÃN] [--file=FICHERO] [--ignore-case] [--word-regexp]
       [--line-regexp] [--line-regexp] [--no-messages] [--revert-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...

DESCRIPCIÃN
       Grep busca en la entrada, bien en la que se le especifica con nombres
       de ficheros o bien en la entrada estándar si no se le dan dichos
       nombres o si uno de éstos consiste en -, lÃneas que concuerden o
       coincidan con el patrón dado.  Si no se dice otra cosa, grep muestra
       las lÃneas que concuerden.

       Hay tres grandes variantes de grep, controladas por las siguientes
       opciones:
       -G, --basic-regexp
              Interpreta patrón como una expresión regular básica (vea más
              abajo). Ãste es el comportamiento predeterminado.
       -E, --extended-regexp
              Interpreta patrón coma una expresión regular extendida (vea
              más adelante).
       -F, --fixed-strings
              Interpreta patrón como una lista de cadenas de caracteres
              fijas, separadas por saltos de lÃnea; se busca la concordancia
              de una cualquiera de ellas.
       Además, están disponibles dos programas que son variantes de éste:
       egrep y fgrep.  egrep es similar (pero no idéntico) a grep -E, y es
       compatible con el egrep histórico de Unix.  fgrep es lo mismo que
       grep -F.

       Todas las variantes de grep entienden las siguientes opciones:
       -núm  Las lÃneas concordantes se mostrarán acompañadas de núm lÃ‐
              neas anteriores y posteriores. Sin embargo, grep nunca mostrará
              cualquier lÃnea dada más de una vez.
       -A  núm , --after-context=NÃM
              Muestra núm lÃneas de contexto después de las que concuerden
              con el patrón.
       -B  núm , --before-context=NÃM
              Muestra núm lÃneas de contexto antes de las que concuerden con
              el patrón.
       -C, --context
              Equivalente a -2.
       -V, --version
              Muestra el número de versión de grep en la salida estándar de
              errores. Este número de versión deberÃa incluirse en todos los
              informes de fallos (vea más abajo).
       -b, --byte-offset
              Muestra el desplazamiento en bytes desde el principio del
              fichero de entrada antes de cada lÃnea de salida.
       -c, --count
              Suprime la salida normal; en su lugar muestra el número de lÃ‐
              neas que concuerdan con el patrón para cada fichero de entrada.
              Con la opción -v, --revert-match (vea más abajo), muestra el
              número de lÃneas que no concuerden.
       -e patrón,--regexp=PATRÃN
              Emplea patrón como el patrón; útil para proteger patrones que
              comiencen con -.
       -f fichero,--file=FICHERO
              Obtiene el patrón de fichero.
       -h, --no-filename
              Suprime la impresión de los nombres de ficheros antes de las
              lÃneas concordantes en la salida, cuando se busca en varios
              ficheros.
       -i, --ignore-case
              No hace caso de si las letras son mayúsculas o minúsculas ni
              en el patrón 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 producirÃa ninguna salida.
              La búsqueda 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 producirÃa alguna salida. La búsqueda se
              detendrá en la primera concordancia.
       -n, --line-number
              Prefija cada lÃnea de salida con el número de lÃnea de su
              fichero de entrada correspondiente.
       -q, --quiet
              Silencioso; suprime la salida normal. La búsqueda finaliza en
              la primera concordancia.
       -s, --silent
              Suprime los mensajes de error sobre ficheros que no existen o no
              se pueden leer.
       -v, --revert-match
              Invierte el sentido de la concordancia, para seleccionar las lÃ‐
              neas donde no las hay.
       -w, --word-regexp
              Selecciona solamente aquellas lÃneas que contienen concordancias
              que forman palabras completas. La comprobación consiste en que
              la cadena de caracteres concordante debe estar al principio de
              la lÃnea o precedida por un carácter que no forme parte de una
              palabra. De forma similar, debe estar o al final de la lÃnea o
              ser seguida por un carácter no constituyente de palabra. Los
              caracteres que se consideran como parte de palabras son letras,
              dÃgitos y el subrayado.
       -x, --line-regexp
              Selecciona solamente aquellas concordancias que constan de toda
              la lÃnea.
       -y     Sinónimo obsoleto de -i.
       -U, --binary
              Trata el(los) fichero(s) como binario(s). De forma
              predeterminada, bajo MS-DOS y MS-Windows, grep intenta adivinar
              el tipo del fichero mirando los contenidos de los primeros 32 kB
              leÃdos de él. Si grep decide que el fichero es de texto, quita
              los caracteres 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 adivinación 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 lÃnea el
              par de caracteres CR/LF, esto hará que algunas expresiones
              regulares fallen. Esta opción sólo tiene sentido en MS-DOS y
              MS-Windows.
       -u, --unix-byte-offsets
              Informa de desplazamientos de bytes al estilo de Unix. Esta
              opción hace que grep muestre los desplazamientos de bytes como
              si el fichero fuera de texto al estilo de Unix; o sea, sin los
              caracteres CR al final de cada lÃnea. Esto producirá resultados
              idénticos a ejecutar grep en un sistema Unix. Esta opción no
              tiene efecto a menos que se dé también la opción -b; sólo
              tiene sentido en MS-DOS y MS-Windows.

EXPRESIONES REGULARES
       Una expresión regular es un patrón que describe un conjunto de
       cadenas de caracteres. Las expresiones regulares se construyen de forma
       análoga a las expresiones aritméticas, combinando expresiones más
       pequeñas mediante ciertos operadores para formar expresiones
       complejas.

       El programa grep entiende dos versiones diferentes de sintaxis para las
       expresiones regulares: la ``básica'' y la ``extendida''. En la
       versión de grep de GNU, no hay diferencia en usar una u otra en cuanto
       a la funcionalidad disponible. En otras implementaciones, las
       expresiones regulares básicas son menos potentes. La siguiente
       descripción se aplica a expresiones regulares extendidas; las
       diferencias con las básicas se resumen a continuación.

       Los bloques de construcción fundamentales son las expresiones
       regulares que concuerdan con un solo carácter. La mayorÃa de los
       caracteres, incluyendo todas las letras y dÃgitos, son expresiones
       regulares que concuerdan consigo mismos. Cualquier meta-carácter con
       un significado especial debe ser protegido precediéndolo con una barra
       inclinada inversa.

       Una lista de caracteres rodeados por [ y ] concuerda con cualquier
       carácter de esa lista; si el primer carácter de la lista es el acento
       circunflejo ^ entonces concuerda con cualquier carácter de fuera de la
       lista.  Por ejemplo, la expresión regular [0123456789] concuerda con
       cualquier carácter dÃgito. Se puede especificar un rango de caracteres
       ASCII dando el primero y el último, separados por un guión.
       Finalmente, están 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 inglés) [0-9A-Za-z], salvo que la última
       forma depende de que la codificación de caracteres siga el estándar
       ISO-646 o ASCII, mientras que la primera es transportable.  (Observe
       que los corchetes en estos nombres de clases son parte de los nombres
       simbólicos, y deben incluirse además 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, póngalo el primero de la lista. De forma similar, para
       incluir un ^ literal, póngalo en cualquier sitio menos el primero.
       Finalmente, para incluir un - literal, póngalo el último.

       El punto .  concuerda con cualquier carácter solo.  El sÃmbolo \w es
       un sinónimo de [[:alnum:]] y \W lo es de [^[:alnum]].

       El acento circunflejo ^ y el signo del dólar (y del escudo portugués)
       $ son meta-caracteres que respectivamente concuerdan con la cadena
       vacÃa al comienzo y al final de una lÃnea.  Los sÃmbolos \< y \>
       respectivamente concuerdan con la cadena vacÃa al principio y al final
       de una palabra.  El sÃmbolo \b concuerda con la cadena vacÃa al borde
       de una palabra, y \B concuerda con la cadena vacÃa supuesto que no
       esté en el extremo de una palabra.

       Una expresión regular que concuerde con un solo carácter puede ser
       seguida por uno de estos varios operadores de repetición:
       ?      El elemento precedente es opcional y concuerda como mucho una
              vez.
       *      El elemento precedente concordará cero o más veces.
       +      El elemento precedente concordará una o más veces.
       {n}    El elemento precedente concuerda exactamente n veces.
       {n,}   El elemento precedente concuerda n o más 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 más
              de m veces.

       Dos expresiones regulares pueden concatenarse; la expresión regular
       resultante concuerda con cualquier cadena formada mediante la
       concatenación de dos subcadenas que concuerdan respectivamente con las
       subexpresiones concatenadas.

       Dos expresiones regulares pueden juntarse mediante el operador infijo
       |; la expresión regular resultante concuerda con cualquier cadena que
       concuerde con cualquiera de las subexpresiones.

       La repetición tiene precedencia sobre la concatenación, la cual a su
       vez tiene precedencia sobre la alternancia. Una subexpresión entera
       puede ser encerrada entre paréntesis para subvertir estas reglas de
       precedencia.

       La retrorreferencia \n, donde n es un dÃgito simple, concuerda con la
       subcadena que previamente concordó con la n-sima subexpresión entre
       paréntesis de la expresión regular.

       En las expresiones regulares básicas, los meta-caracteres ?, +, {, |,
       (, y ) pierden su significado especial; en su lugar emplee las
       versiones protegidas mediante la barra inversa \?, \+, \{, \|, \(, y
       \).

       En egrep, el meta-carácter { pierde su significado especial; en su
       lugar emplee \{.

DIAGNÃSTICOS
       Normalmente, el status de salida es 0 si se encuentran concordancias, y
       1 si no se encuentran. (La opción -v invierte el sentido del status de
       salida.)  El status de salida es 2 si habÃa errores de sintaxis en el
       patrón, si los ficheros de entrada eran inaccesibles, o en caso de
       otros errores del sistema.

FALLOS
       EnvÃe informes sobre fallos por correo electrónico a la dirección
       bug-gnu-utils@prep.ai.mit.edu.  Asegúrese de incluir la palabra
       ``grep'' en algún sitio del campo ``Asunto:'' (``Subject:'').

       Números de repetición grandes en la construcción {m,n} pueden hacer
       que grep emplee grandes cantidades de memoria.  En adición a esto,
       ciertas otras obscuras expresiones regulares requieren tiempo y espacio
       exponenciales, y pueden hacer que grep se quede sin memoria.

       Las retrorreferencias son muy lentas, y pueden requerir un tiempo
       exponencial.



Proyecto GNU                  10 Septiembre 1992                       GREP(1)