grep, egrep, fgrep, rgrep: imprime las líneas que coinciden con los patrones
SINTAXIS
grep [OPCIÓN]... PATRONES [ARCHIVO]...
grep [OPCIÓN]... -e PATRONES ... [ARCHIVO]...
grep [OPCIÓN]... -f ARCHIVO_DE_PATRONES ... [ARCHIVO]...
DESCRIPCIÓN
grep busca patrones en cada ARCHIVO. En la primera forma de la sintaxis, que se utiliza si no se presentan las opciones -e o -f, el primer operando PATRONES es uno o más patrones separados por caracteres de nueva línea, y grep imprime cada línea que coincide con un patrón. Normalmente, los PATRONES deben estar entre comillas cuando grep se utiliza en un comando de shell.
Un ARCHIVO de “-” representa la entrada estándar. Si no se proporciona ningún ARCHIVO, las búsquedas recursivas examinan el directorio de trabajo y las búsquedas no recursivas leen la entrada estándar.
Debian también incluye los programas variantes egrep, fgrep y rgrep. Estos programas son los mismos que grep -E, grep -F y grep -r, respectivamente. Estas variantes están obsoletas, pero Debian las proporciona para compatibilidad con versiones anteriores. Por motivos de portabilidad, se recomienda evitar los programas variantes y utilizar grep con la opción relacionada en su lugar.
OPCIONES
Información genérica del programa
--help Muestra un mensaje de uso y sale.
-V, --version
Muestra el número de versión de grep y sale.
Sintaxis del patrón
-E, --extended-regexp
Interpreta los PATRONES como expresiones regulares extendidas (ERE, consulte a continuación).
-F, --fixed-strings
Interpreta los PATRONES como cadenas fijas, no como expresiones regulares.
-G, --basic-regexp
Interpreta los PATRONES como expresiones regulares básicas (BRE, consulte a continuación). Este es el valor predeterminado.
-P, --perl-regexp
Interpreta los PATRONES como expresiones regulares compatibles con Perl (PCRE). Esta opción es experimental cuando se combina con la opción -z (--null-data), y grep -P puede mostrar una advertencia sobre características no implementadas.
Control de coincidencia
-e PATRONES, --regexp=PATRONES
Utiliza PATRONES como los patrones. Si esta opción se utiliza varias veces o se combina con la opción -f (--file), busca todos los patrones dados. Esta opción se puede utilizar para proteger un patrón que comienza con “-”.
-f ARCHIVO, --file=ARCHIVO
Obtiene los patrones de ARCHIVO, uno por línea. Si esta opción se utiliza varias veces o se combina con la opción -e (--regexp), busca todos los patrones dados. El archivo vacío contiene cero patrones y, por lo tanto, no coincide con nada. Si ARCHIVO es -, lee los patrones de la entrada estándar.
-i, --ignore-case
Ignora las distinciones entre mayúsculas y minúsculas en los patrones y los datos de entrada, de modo que los caracteres que difieren solo en mayúsculas coincidan entre sí.
--no-ignore-case
No ignora las distinciones entre mayúsculas y minúsculas en los patrones y los datos de entrada. Esta es la opción predeterminada. Esta opción es útil para pasar a los scripts de shell que ya utilizan -i, para cancelar sus efectos, ya que las dos opciones se anulan entre sí.
-v, --invert-match
Invierte el sentido de la coincidencia, para seleccionar las líneas que no coinciden.
-w, --word-regexp
Selecciona solo las líneas que contienen coincidencias que forman palabras completas. La prueba es que la subcadena coincidente debe estar al principio de la línea, o precedida por un carácter que no sea un constituyente de palabra. De manera similar, debe estar al final de la línea o seguido de un carácter que no sea un constituyente de palabra. Los caracteres constituyentes de palabra son letras, dígitos y el guion bajo. Esta opción no tiene efecto si también se especifica -x.
-x, --line-regexp
Selecciona solo las coincidencias que coinciden exactamente con toda la línea. Para un patrón de expresión regular, esto es como colocar el patrón entre paréntesis y luego rodearlo con ^ y $.
Control General de la Salida
-c, --count
Suprime la salida normal; en su lugar, imprime un recuento de las líneas coincidentes para cada archivo de entrada. Con la opción -v, --invert-match (ver arriba), cuenta las líneas que no coinciden.
--color[=WHEN], --colour[=WHEN]
Encierra las cadenas coincidentes (no vacías), las líneas coincidentes, las líneas de contexto, los nombres de archivo, los números de línea, los desplazamientos de bytes y los separadores (para campos y grupos de líneas de contexto) con secuencias de escape para mostrarlos en color en la terminal. Los colores están definidos por la variable de entorno GREP_COLORS. WHEN puede ser never, always o auto.
-L, --files-without-match
Suprime la salida normal; en su lugar, imprime el nombre de cada archivo de entrada del que normalmente no se habría impreso ninguna salida.
-l, --files-with-matches
Suprime la salida normal; en su lugar, imprime el nombre de cada archivo de entrada del que normalmente se habría impreso alguna salida. El escaneo de cada archivo de entrada se detiene después de la primera coincidencia.
-m NUM, --max-count=NUM
Deja de leer un archivo después de NUM líneas coincidentes. Si NUM es cero, grep se detiene inmediatamente sin leer la entrada. Un NUM de -1 se trata como infinito y grep no se detiene; este es el valor predeterminado. Si la entrada es la entrada estándar de un archivo regular y se imprimen NUM líneas coincidentes, grep se asegura de que la entrada estándar esté posicionada justo después de la última línea coincidente antes de salir, independientemente de la presencia de líneas de contexto finales. Esto permite que un proceso de llamada reanude una búsqueda. Cuando grep se detiene después de NUM líneas coincidentes, imprime cualquier línea de contexto final. Cuando también se usa la opción -c o --count, grep no imprime un recuento mayor que NUM. Cuando también se usa la opción -v o --invert-match, grep se detiene después de imprimir NUM líneas que no coinciden.
-o, --only-matching
Imprime solo las partes coincidentes (no vacías) de una línea coincidente, con cada una de estas partes en una línea de salida separada.
-q, --quiet, --silent
Silencioso; no escribe nada en la salida estándar. Sale inmediatamente con un estado cero si se encuentra alguna coincidencia, incluso si se detectó un error. Consulte también la opción -s o --no-messages.
-s, --no-messages
Suprime los mensajes de error sobre archivos inexistentes o ilegibles.
Control del prefijo de la línea de salida
-b, --byte-offset
Imprime el desplazamiento de bytes (empezando en 0) dentro del archivo de entrada antes de cada línea de salida. Si se especifica -o (--only-matching), imprime el desplazamiento de la parte que coincide.
-H, --with-filename
Imprime el nombre del archivo para cada coincidencia. Este es el valor predeterminado cuando hay más de un archivo para buscar. Esta es una extensión GNU.
-h, --no-filename
Suprime el prefijo de los nombres de archivo en la salida. Este es el valor predeterminado cuando hay solo un archivo (o solo la entrada estándar) para buscar.
--label=LABEL
Muestra la entrada que proviene de la entrada estándar como si proviniera del archivo LABEL. Esto puede ser útil para comandos que transforman el contenido de un archivo antes de buscar, por ejemplo, gzip -cd foo.gz | grep --label=foo -H 'algún patrón'. Consulte también la opción -H.
-n, --line-number
Prefija cada línea de salida con el número de línea (empezando en 1) dentro de su archivo de entrada.
-T, --initial-tab
Asegura que el primer carácter del contenido real de la línea esté en una posición de tabulación, para que la alineación de las tabulaciones se vea normal. Esto es útil con las opciones que prefijan su salida al contenido real: -H, -n y -b. Para mejorar la probabilidad de que las líneas de un solo archivo comiencen todas en la misma columna, esto también hace que el número de línea y el desplazamiento de bytes (si están presentes) se impriman en un ancho de campo mínimo.
-Z, --null
Produce un byte cero (el carácter ASCII NUL) en lugar del carácter que normalmente sigue a un nombre de archivo. Por ejemplo, grep -lZ produce un byte cero después de cada nombre de archivo en lugar de la nueva línea habitual. Esta opción hace que la salida sea inequívoca, incluso en presencia de nombres de archivo que contienen caracteres inusuales como nuevas líneas. Esta opción se puede utilizar con comandos como find -print0, perl -0, sort -z y xargs -0 para procesar nombres de archivo arbitrarios, incluso aquellos que contienen caracteres de nueva línea.
Control de la línea de contexto
-A NUM, --after-context=NUM
Imprime NUM líneas de contexto posterior después de las líneas que coinciden. Coloca una línea que contiene un separador de grupo (--) entre grupos de coincidencias contiguas. Con la opción -o o --only-matching, esto no tiene ningún efecto y se muestra una advertencia.
-B NUM, --before-context=NUM
Imprime NUM líneas de contexto anterior antes de las líneas que coinciden. Coloca una línea que contiene un separador de grupo (--) entre grupos de coincidencias contiguas. Con la opción -o o --only-matching, esto no tiene ningún efecto y se muestra una advertencia.
-C NUM, -NUM, --context=NUM
Imprime NUM líneas de contexto de salida. Coloca una línea que contiene un separador de grupo (--) entre grupos de coincidencias contiguas. Con la opción -o o --only-matching, esto no tiene ningún efecto y se muestra una advertencia.
--group-separator=SEP
Cuando -A, -B o -C están en uso, imprime SEP en lugar de -- entre los grupos de líneas.
--no-group-separator
Cuando -A, -B o -C están en uso, no imprima un separador entre los grupos de líneas.
Selección de archivos y directorios
-a, --text
Procesa un archivo binario como si fuera texto; esto es equivalente a la opción --binary-files=text.
--binary-files=TYPE
Si los datos o metadatos de un archivo indican que el archivo contiene datos binarios, asume que el archivo es del tipo TYPE. Los bytes no textuales indican datos binarios; estos son bytes de salida incorrectamente codificados para la configuración regional actual, o bytes de entrada nulos cuando no se proporciona la opción -z.
Por defecto, TYPE es binary, y grep suprime la salida después de que se descubren datos binarios de entrada nulos, y suprime las líneas de salida que contienen datos incorrectamente codificados. Cuando se suprime alguna salida, grep sigue cualquier salida con un mensaje a la salida estándar que indica que un archivo binario coincide.
Si TYPE es without-match, cuando grep descubre datos binarios de entrada nulos, asume que el resto del archivo no coincide; esto es equivalente a la opción -I.
Si TYPE es text, grep procesa un archivo binario como si fuera texto; esto es equivalente a la opción -a.
Cuando type es binary, grep puede tratar los bytes no textuales como terminadores de línea, incluso sin la opción -z. Esto significa que elegir entre binary y text puede afectar si un patrón coincide con un archivo. Por ejemplo, cuando type es binary, el patrón q$ podría coincidir con q inmediatamente seguido de un byte nulo, aunque esto no coincida cuando type es text. Por el contrario, cuando type es binary, el patrón . (punto) podría no coincidir con un byte nulo.
Advertencia: la opción -a podría generar una salida binaria, lo que puede tener efectos secundarios desagradables si la salida es una terminal y si el controlador de la terminal interpreta parte de ella como comandos. Por otro lado, cuando se leen archivos cuyos codificaciones de texto son desconocidas, puede ser útil usar -a o establecer LC_ALL='C' en el entorno, para encontrar más coincidencias, incluso si las coincidencias no son seguras para su visualización directa.
-D ACTION, --devices=ACTION
Si un archivo de entrada es un dispositivo, FIFO o socket, usa ACTION para procesarlo. Por defecto, ACTION es read, lo que significa que los dispositivos se leen como si fueran archivos normales. Si ACTION es skip, los dispositivos se omiten silenciosamente.
-d ACTION, --directories=ACTION
Si un archivo de entrada es un directorio, usa ACTION para procesarlo. Por defecto, ACTION es read, es decir, se leen los directorios como si fueran archivos normales. Si ACTION es skip, se omiten los directorios silenciosamente. Si ACTION es recurse, se leen todos los archivos debajo de cada directorio, de forma recursiva, siguiendo los enlaces simbólicos solo si están en la línea de comandos. Esto es equivalente a la opción -r.
--exclude=GLOB
Omite cualquier archivo de la línea de comandos cuyo nombre sufijo coincida con el patrón GLOB, utilizando la coincidencia de comodines; un sufijo de nombre es el nombre completo, o una parte final que comienza con un carácter que no es una barra (/) en el nombre. Cuando se busca de forma recursiva, omite cualquier subarchivo cuyo nombre base coincida con GLOB; el nombre base es la parte después de la última barra. Un patrón puede usar *, ?, y [] como comodines, y \ para citar un comodín o barra diagonal literalmente.
--exclude-from=ARCHIVO
Omita los archivos cuyo nombre base coincida con alguno de los patrones de nombre de archivo leídos desde ARCHIVO (utilizando la coincidencia de comodines como se describe en --exclude).
--exclude-dir=PATRÓN
Omita cualquier directorio de la línea de comandos cuyo sufijo de nombre coincida con el patrón PATRÓN. Cuando se busca de forma recursiva, omita cualquier subdirectorio cuyo nombre base coincida con PATRÓN. Ignore cualquier barra diagonal final redundante en PATRÓN.
-I Procese un archivo binario como si no contuviera datos coincidentes; esto es equivalente a la opción --binary-files=without-match.
--include=PATRÓN
Busque solo los archivos cuyo nombre base coincida con PATRÓN (utilizando la coincidencia de comodines como se describe en --exclude). Si se proporcionan opciones --include y --exclude contradictorias, la última coincidente prevalece. Si no hay ninguna opción --include o --exclude que coincida, un archivo se incluye a menos que la primera de dichas opciones sea --include.
-r, --recursive
Lea todos los archivos debajo de cada directorio, de forma recursiva, siguiendo los enlaces simbólicos solo si están en la línea de comandos. Tenga en cuenta que si no se proporciona ningún operando de archivo, grep busca en el directorio de trabajo. Esto es equivalente a la opción -d recurse.
-R, --dereference-recursive
Lea todos los archivos debajo de cada directorio, de forma recursiva. Siga todos los enlaces simbólicos, a diferencia de -r.
Otras opciones
--line-buffered
Utilice el almacenamiento en búfer de línea en la salida. Esto puede provocar una penalización en el rendimiento.
-U, --binary
Trate los archivos como binarios. De forma predeterminada, en MS-DOS y MS-Windows, grep adivina si un archivo es de texto o binario, como se describe en la opción --binary-files. Si grep decide que el archivo es un archivo de texto, elimina los caracteres CR del contenido original del archivo (para que las expresiones regulares con ^ y $ funcionen correctamente). Especificar -U anula esta suposición, lo que hace que todos los archivos se lean y se pasen al mecanismo de coincidencia tal cual; si el archivo es un archivo de texto con pares CR/LF al final de cada línea, esto hará que algunas expresiones regulares fallen. Esta opción no tiene ningún efecto en otras plataformas que no sean MS-DOS y MS-Windows.
-z, --null-data
Trate los datos de entrada y salida como secuencias de líneas, cada una terminada por un byte cero (el carácter ASCII NUL) en lugar de una nueva línea. Al igual que la opción -Z o --null, esta opción se puede utilizar con comandos como sort -z para procesar nombres de archivo arbitrarios.
EXPRESIONES REGULARES
Una expresión regular es un patrón que describe un conjunto de cadenas. Las expresiones regulares se construyen de forma similar a las expresiones aritméticas, utilizando varios operadores para combinar expresiones más pequeñas.
grep entiende tres versiones diferentes de la sintaxis de expresiones regulares: "básica" (BRE), "extendida" (ERE) y "perl" (PCRE). En GNU grep, las expresiones regulares básicas y extendidas son simplemente diferentes notaciones para la misma funcionalidad de coincidencia de patrones. En otras implementaciones, las expresiones regulares básicas son normalmente menos potentes que las extendidas, aunque a veces es al revés. La siguiente descripción se aplica a las expresiones regulares extendidas; las diferencias para las expresiones regulares básicas se resumen más adelante. Las expresiones regulares compatibles con Perl tienen una funcionalidad diferente y se documentan en pcre2syntax(3) y pcre2pattern(3), pero solo funcionan si se habilita el soporte de PCRE.
Los bloques de construcción fundamentales son las expresiones regulares que coinciden con un solo carácter. La mayoría de los caracteres, incluidas todas las letras y los dígitos, son expresiones regulares que coinciden consigo mismos. Cualquier metacaracter con significado especial puede estar precedido por una barra invertida para escapar su significado.
El punto . coincide con cualquier carácter único. No se especifica si coincide con un error de codificación.
Clases de caracteres y expresiones entre corchetes
Una expresión entre corchetes es una lista de caracteres encerrada entre [ y ]. Coincide con cualquier carácter único de esa lista. Si el primer carácter de la lista es el signo de intercalación ^, entonces coincide con cualquier carácter que no esté en la lista; no se especifica si coincide con un error de codificación. Por ejemplo, la expresión regular [0123456789] coincide con cualquier dígito único.
Dentro de una expresión entre corchetes, una expresión de rango consiste en dos caracteres separados por un guion. En la configuración regional C predeterminada, coincide con cualquier carácter único que aparezca entre los dos caracteres en orden ASCII, inclusive. Por ejemplo, [a-d] es equivalente a [abcd]. En otras configuraciones regionales, el comportamiento no está especificado: [a-d] podría ser equivalente a [abcd] o [aBbCcDd] u otra expresión entre corchetes, o podría no coincidir con ningún carácter, o el conjunto de caracteres con los que coincide podría ser errático, o podría ser inválido. Para obtener la interpretación tradicional de las expresiones entre corchetes, puede usar la configuración regional C estableciendo la variable de entorno LC_ALL en el valor C.
Finalmente, ciertas clases de caracteres con nombre están predefinidas dentro de las expresiones entre corchetes, de la siguiente manera. Sus nombres son autoexplicativos, y son [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] y [:xdigit:]. Por ejemplo, [[:alnum:]] significa la clase de caracteres de números y letras en la configuración regional actual. En la configuración regional C y la codificación de conjunto de caracteres ASCII, esto es lo mismo que [0-9A-Za-z]. (Tenga en cuenta que los corchetes en estos nombres de clase son parte de los nombres simbólicos y deben incluirse además de los corchetes que delimitan la expresión entre corchetes). La mayoría de los metacaracteres pierden su significado especial dentro de las expresiones entre corchetes. Para incluir un corchete literal ], colóquelo primero en la lista. De manera similar, para incluir un signo de intercalación literal ^, colóquelo en cualquier lugar excepto el primero. Finalmente, para incluir un guion literal -, colóquelo al final.
Anclaje
El signo de intercalación ^ y el signo de dólar $ son metacaracteres que, respectivamente, coinciden con la cadena vacía al principio y al final de una línea.
El carácter de barra invertida y expresiones especiales
Los símbolos \< y \\> coinciden, respectivamente, con la cadena vacía al principio y al final de una palabra. El símbolo \b coincide con la cadena vacía en el borde de una palabra, y \B coincide con la cadena vacía siempre que no esté en el borde de una palabra. El símbolo \w es sinónimo de [_[:alnum:]] y \W es sinónimo de [^_[:alnum:]].
Repetición
Una expresión regular puede ser seguida por uno de los siguientes operadores de repetición: ? El elemento precedente es opcional y se puede encontrar como máximo una vez. * El elemento precedente se encontrará cero o más veces. + El elemento precedente se encontrará una o más veces. {n} El elemento precedente se encontrará exactamente n veces. {n,} El elemento precedente se encontrará n o más veces. {,m} El elemento precedente se encontrará como máximo m veces. Esta es una extensión GNU. {n,m} El elemento precedente se encontrará al menos n veces, pero no más de m veces.
Concatenación
Dos expresiones regulares se pueden concatenar; la expresión regular resultante coincide con cualquier cadena formada por la concatenación de dos subcadenas que coincidan respectivamente con las expresiones concatenadas.
Alternancia
Dos expresiones regulares se pueden unir mediante el operador infijo |; la expresión regular resultante coincide con cualquier cadena que coincida con cualquiera de las expresiones alternativas.
Precedencia
La repetición tiene precedencia sobre la concatenación, que a su vez tiene precedencia sobre la alternancia. Se puede encerrar una expresión completa entre paréntesis para anular estas reglas de precedencia y formar un subexpresión.
Referencias inversas y subexpresiones
La referencia inversa \n, donde n es un solo dígito, coincide con la subcadena que se encontró previamente mediante la enésima subexpresión entre paréntesis de la expresión regular.
Expresiones regulares básicas y extendidas
En las expresiones regulares básicas, los metacaracteres ?, +, {, |, (, y ) pierden su significado especial; en su lugar, utilice las versiones con barras diagonales invertidas \?, +, {, |, ( y ).
ESTADO DE SALIDA
Normalmente, el estado de salida es 0 si se selecciona una línea, 1 si no se seleccionó ninguna línea y 2 si se produjo un error. Sin embargo, si se utiliza -q o --quiet o --silent y se selecciona una línea, el estado de salida es 0 incluso si se produjo un error.
ENTORNO
El comportamiento de grep se ve afectado por las siguientes variables de entorno.
La configuración regional para la categoría LC_foo se especifica examinando las tres variables de entorno LC_ALL, LC_foo, LANG, en ese orden. La primera de estas variables que está establecida especifica la configuración regional. Por ejemplo, si LC_ALL no está establecida, pero LC_MESSAGES está establecida en pt_BR, entonces se utilizará la configuración regional portuguesa de Brasil para la categoría LC_MESSAGES. Se utilizará la configuración regional C si ninguna de estas variables de entorno está establecida, si el catálogo de configuración regional no está instalado o si grep no se compiló con soporte de idiomas nacionales (NLS). El comando shell locale -a enumera las configuraciones regionales que están disponibles actualmente.
GREP_COLORS
Controla cómo la opción --color resalta la salida. Su valor es una lista separada por dos puntos de capacidades que tiene como valor predeterminado ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 con las capacidades booleanas rv y ne omitidas (es decir, false). Las capacidades admitidas son las siguientes.
sl= SGR subcadena para líneas completas seleccionadas (es decir, las líneas que coinciden cuando se omite la opción de línea de comandos -v, o las líneas que no coinciden cuando se especifica -v). Sin embargo, si la capacidad booleana rv y la opción de línea de comandos -v se especifican ambas, se aplica a las líneas de contexto coincidentes. El valor predeterminado es vacío (es decir, el par de colores predeterminado del terminal).
cx= SGR subcadena para líneas de contexto completas (es decir, las líneas que no coinciden cuando se omite la opción de línea de comandos -v, o las líneas que coinciden cuando se especifica -v). Si la capacidad booleana rv y la opción de línea de comandos -v se especifican ambas, se aplica a las líneas no coincidentes seleccionadas. El valor predeterminado es vacío (es decir, el par de colores predeterminado del terminal).
rv Valor booleano que invierte (intercambia) los significados de las capacidades sl= y cx= cuando se especifica la opción de línea de comandos -v. El valor predeterminado es falso (es decir, la capacidad se omite).
mt=01;31
SGR subcadena para texto no vacío coincidente en cualquier línea coincidente (es decir, una línea seleccionada cuando se omite la opción de línea de comandos -v, o una línea de contexto cuando se especifica -v). Establecer esto equivale a establecer tanto ms= como mc= a la vez con el mismo valor. El valor predeterminado es un texto en negrita de color rojo sobre el fondo de línea actual.
ms=01;31
SGR subcadena para texto no vacío coincidente en una línea seleccionada. (Esto solo se utiliza cuando se omite la opción de línea de comandos -v). El efecto de la capacidad sl= (o cx= si rv) permanece activo cuando esto entra en vigor. El valor predeterminado es un texto en negrita de color rojo sobre el fondo de línea actual.
mc=01;31
SGR subcadena para texto no vacío coincidente en una línea de contexto. (Esto solo se utiliza cuando se especifica la opción de línea de comandos -v). El efecto de la capacidad cx= (o sl= si rv) permanece activo cuando esto entra en vigor. El valor predeterminado es un texto en negrita de color rojo sobre el fondo de línea actual.
fn=35 SGR subcadena para nombres de archivo que preceden a cualquier contenido de línea. El valor predeterminado es un texto magenta sobre el fondo predeterminado del terminal.
ln=32 SGR subcadena para números de línea que preceden a cualquier contenido de línea. El valor predeterminado es un texto verde sobre el fondo predeterminado del terminal.
bn=32 SGR subcadena para desplazamientos de bytes que preceden a cualquier contenido de línea. El valor predeterminado es un texto verde sobre el fondo predeterminado del terminal.
se=36 SGR subcadena para separadores que se insertan entre los campos de línea seleccionados (:), entre los campos de línea de contexto (-) y entre grupos de líneas adyacentes cuando se especifica un contexto distinto de cero (--). El valor predeterminado es un texto cian sobre el fondo predeterminado del terminal.
ne Valor booleano que impide borrar hasta el final de la línea utilizando Borrar en línea (EL) cada vez que termina un elemento coloreado. Esto es necesario en los terminales en los que EL no es compatible. De lo contrario, es útil en los terminales para los que la capacidad booleana del terminfo `back_color_erase` (bce) no se aplica, cuando los colores de resaltado elegidos no afectan al fondo, o cuando EL es demasiado lento o causa demasiado parpadeo. El valor predeterminado es falso (es decir, la capacidad se omite).
Tenga en cuenta que las capacidades booleanas no tienen una parte =... Están omitidas (es decir, son falsas) de forma predeterminada y se vuelven verdaderas cuando se especifican.
Consulte la sección Select Graphic Rendition (SGR) en la documentación del terminal de texto que se utiliza para conocer los valores permitidos y su significado como atributos de los caracteres. Estos valores de subcadena son enteros en representación decimal y se pueden concatenar con puntos y comas. grep se encarga de ensamblar el resultado en una secuencia SGR completa (\33[...m). Los valores comunes para concatenar incluyen 1 para negrita, 4 para subrayado, 5 para parpadeo, 7 para inverso, 39 para color de primer plano predeterminado, 30 a 37 para colores de primer plano, 90 a 97 para colores de primer plano en modo de 16 colores, 38;5;0 a 38;5;255 para colores de primer plano en modos de 88 colores y 256 colores, 49 para color de fondo predeterminado, 40 a 47 para colores de fondo, 100 a 107 para colores de fondo en modo de 16 colores y 48;5;0 a 48;5;255 para colores de fondo en modos de 88 colores y 256 colores.
LC_ALL, LC_COLLATE, LANG
Estas variables especifican la configuración regional para la categoría LC_COLLATE, que determina la secuencia de ordenación utilizada para interpretar expresiones de rango como [a-z].
LC_ALL, LC_CTYPE, LANG
Estas variables especifican la configuración regional para la categoría LC_CTYPE, que determina el tipo de caracteres, por ejemplo, qué caracteres son espacios en blanco. Esta categoría también determina la codificación de caracteres, es decir, si el texto se codifica en UTF-8, ASCII o alguna otra codificación. En la configuración regional C o POSIX, todos los caracteres se codifican como un solo byte y cada byte es un carácter válido.
LC_ALL, LC_MESSAGES, LANG
Estas variables especifican la configuración regional para la categoría LC_MESSAGES, que determina el idioma que grep utiliza para los mensajes. La configuración regional C predeterminada utiliza mensajes en inglés americano.
POSIXLY_CORRECT
Si está configurada, grep se comporta como lo requiere POSIX; de lo contrario, grep se comporta más como otros programas GNU. POSIX requiere que las opciones que siguen a los nombres de archivo se traten como nombres de archivo; por defecto, estas opciones se colocan al principio de la lista de operandos y se tratan como opciones. Además, POSIX requiere que las opciones no reconocidas se diagnostiquen como "ilegales", pero dado que realmente no son ilegales, por defecto se diagnostican como "no válidas".
NOTAS
Esta página de manual se mantiene de forma esporádica; la documentación completa suele estar más actualizada.
DERECHOS DE AUTOR
Copyright 1998–2000, 2002, 2005–2025 Free Software Foundation, Inc.
Este es un software libre; consulte el código fuente para conocer las condiciones de copia. No hay NINGUNA garantía; ni siquiera para la COMERCIALIZACIÓN o la ADECUACIÓN PARA UN PROPÓSITO PARTICULAR.
ERRORES
Informar sobre errores
Envíe los informes de errores a la dirección de correo electrónico para informar sobre errores. Hay disponible un archivo de correo electrónico y un rastreador de errores.
Errores conocidos
Los recuentos de repetición grandes en la construcción {n,m} pueden hacer que grep utilice mucha memoria. Además, ciertas otras expresiones regulares complejas requieren tiempo y espacio exponenciales, y pueden hacer que grep se quede sin memoria.
Las referencias inversas son muy lentas y pueden requerir tiempo exponencial.
EJEMPLO
El siguiente ejemplo muestra la ubicación y el contenido de cualquier línea que contenga "f" y termine en ".c", dentro de todos los archivos del directorio actual cuyos nombres contengan "g" y terminen en ".h". La opción -n muestra los números de línea, la opción -- trata las expansiones de "*g*.h" que comienzan con "-" como nombres de archivo y no como opciones, y el archivo vacío /dev/null hace que se muestren los nombres de archivo incluso si solo hay un nombre de archivo del formato "*g*.h".
$ grep -n -- 'f.*\.c$' *g*.h /dev/null
argmatch.h:1:/* definiciones y prototipos para argmatch.c
La única línea que coincide es la línea 1 de argmatch.h. Tenga en cuenta que la sintaxis de expresión regular utilizada en el patrón es diferente de la sintaxis de globbing que utiliza el shell para hacer coincidir los nombres de archivo.
VÉASE TAMBIÉN
Páginas del manual de expresiones regulares
awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3), pcre2pattern(3), terminfo(5), glob(7), regex(7)
Documentación completa
Hay disponible un manual completo. Si los programas info y grep están instalados correctamente en su sitio, el comando
info grep
debería darle acceso al manual completo.