Comando egrep de Linux

comando egrep

En sistemas operativos tipo Unix, el comando egrep busca un patrón de texto, utilizando expresiones regulares extendidas para realizar la coincidencia. Ejecutar egrep es equivalente a ejecutar grep con la opción -E.

Este documento cubre la versión GNU / Linux de egrep.

Sintaxis

egrep [opciones] PATRÓN [ARCHIVO ...]

-Un NUM --after-context = NUM Imprima NUM líneas del contexto final después de las líneas coincidentes. Coloca una línea que contiene - entre grupos contiguos de coincidencias.
-un texto Procesar un archivo binario como si fuera texto; esto es equivalente a la opción --binary-files = text.
-B NUM, --before-context = NUM Imprima NUM líneas de contexto principal antes de hacer coincidir las líneas. Coloca una línea que contiene - entre grupos contiguos de coincidencias.
-C NUM, --context = NUM Imprimir NUM líneas de contexto de salida. Coloca una línea que contiene - entre grupos contiguos de coincidencias.
-b, --byte-offset Imprima el desplazamiento de bytes dentro del archivo de entrada antes de cada línea de salida.
--binary-files = TYPE Si los primeros bytes de un archivo indican que el archivo contiene datos binarios, suponga que el archivo es de tipo TYPE. De forma predeterminada, TYPE es binario, y grep normalmente emite un mensaje de una línea que dice que un archivo binario coincide o ningún mensaje si no coincide. Si TYPE no coincide, grep supone que un archivo binario no coincide; Esto es equivalente a la opción -I. Si TYPE es texto, grep procesa un archivo binario como si fuera texto; Esto es equivalente a la opción -a. Advertencia: grep --binary-files = text puede generar basura binaria, lo que puede tener efectos secundarios desagradables si el resultado es un terminal y si el controlador del terminal interpreta algunos de ellos como comandos.
--color [= CUANDO], --color [= CUANDO] Rodee la cadena coincidente con el marcador que se encuentra en la variable de entorno GREP_COLOR. CUANDO puede ser 'nunca', 'siempre' o 'auto'
-c, --count Suprimir salida normal; en su lugar, imprima un recuento de líneas coincidentes para cada archivo de entrada. Con la opción -v, --invert-match (ver más abajo), cuente las líneas que no coinciden.
-D ACCIÓN, --dispositivos = ACCIÓN Si un archivo de entrada es un dispositivo, FIFO o socket, use ACTION para procesarlo. Por defecto, ACTION se lee, lo que significa que los dispositivos se leen como si fueran archivos normales. Si ACTION se omite, los dispositivos se omiten silenciosamente.
-d ACCIÓN, --directorios = ACCIÓN Si un archivo de entrada es un directorio, use ACTION para procesarlo. Por defecto, ACTION se lee, lo que significa que los directorios se leen como si fueran archivos normales. Si ACTION se omite, los directorios se omiten silenciosamente. Si ACTION es recurse, grep lee todos los archivos de cada directorio, de forma recursiva; Esto es equivalente a la opción -r.
-e PATRÓN, --regexp = PATRÓN Use PATTERN como patrón; útil para proteger patrones que comienzan con "-".
-F, - cadenas fijas Interprete PATTERN como una lista de cadenas fijas, separadas por nuevas líneas, que pueden coincidir.
-P, --perl-regexp Interprete PATTERN como una expresión regular de Perl.
-f ARCHIVO, --archivo = ARCHIVO Obtenga patrones de ARCHIVO, uno por línea. El archivo vacío contiene patrones cero y, por lo tanto, no coincide con nada.
-G, --basic-regexp Interpreta PATTERN como una expresión regular básica (ver más abajo). Este es el valor predeterminado.
-H, --with-filename Imprima el nombre del archivo para cada partido.
-h, --no-filename Suprima el prefijo de nombres de archivo en la salida cuando se buscan varios archivos.
--ayuda Envíe un breve mensaje de ayuda.
-I Procese un archivo binario como si no contuviera datos coincidentes; esto es equivalente a la opción --binary-files = without-match.
-i, - ignorar caso Ignora las distinciones entre mayúsculas y minúsculas tanto en el PATRÓN como en los archivos de entrada.
-L, --archivos sin coincidencia Suprimir salida normal; en su lugar, imprima el nombre de cada archivo de entrada desde el que normalmente no se habría impreso ninguna salida. El escaneo se detendrá en el primer partido.
-l, --files-con-coincidencias Suprimir salida normal; en su lugar, imprima el nombre de cada archivo de entrada desde el que normalmente se habría impreso la salida. El escaneo se detendrá en el primer partido.
-m NUM, --max-count = NUM Deja de leer un archivo después de NUM líneas coincidentes. Si la entrada es una entrada estándar de un archivo normal y se generan NUM líneas coincidentes, grep asegura que la entrada estándar se coloca 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, genera cualquier línea de contexto final. Cuando también se usa la opción -c o --count, grep no genera un recuento mayor que NUM. Cuando también se usa la opción -v o --invert-match, grep se detiene después de generar NUM líneas no coincidentes.
--mmap Si es posible, use la llamada del sistema mmap para leer la entrada, en lugar de la llamada predeterminada del sistema de lectura. En algunas situaciones, --mmap produce un mejor rendimiento. Sin embargo, --mmap puede causar un comportamiento indefinido (incluidos los volcados de núcleo) si un archivo de entrada se reduce mientras grep está funcionando o si se produce un error de E / S.
-n, - número-línea Prefije cada línea de salida con el número de línea dentro de su archivo de entrada.
-o, --solo coincidencia Muestra solo la parte de una línea coincidente que coincide con PATTERN.
--label = LABEL Muestra la entrada que realmente proviene de la entrada estándar como entrada que proviene del archivo LABEL. Esto es especialmente útil para herramientas como zgrep, por ejemplo, gzip -cd foo.gz | grep -H --label = foo something
--line-buffer Usa el almacenamiento en línea. Esto puede incurrir en una penalización de rendimiento.
-q, --quiet, --silent Silencio; No escriba nada en la salida estándar. Salga inmediatamente con estado cero si se encuentra alguna coincidencia, incluso si se detectó un error. Consulte también la opción -s o --no-messages.
-R, -r, --recursivo Lea todos los archivos en cada directorio, de forma recursiva; Esto es equivalente a la opción -d recurse. Modificado por: - include = PATTERN Recurse en directorios que solo buscan archivos que coinciden con PATTERN .-- exclude = PATTERN Recurse en directorios que omiten archivos que coinciden con PATTERN.
-s, --no-messages Suprime mensajes de error sobre archivos inexistentes o ilegibles. Nota de portabilidad: a diferencia de GNU grep, grep tradicional no se ajustaba a POSIX.2, porque grep tradicional carecía de una opción -q y su opción -s se comportaba como la opción -q de GNU grep. Los scripts de Shell destinados a ser portátiles al grep tradicional deberían evitar tanto -q como -s y deberían redirigir la salida a / dev / null en su lugar.
-U, --binario Trate los archivos como binarios. De forma predeterminada, en MS-DOS y MS Windows, grep adivina el tipo de archivo mirando el contenido de la primera lectura de 32 KB del archivo. 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 conjetura, haciendo que todos los archivos sean leídos y pasados ​​al mecanismo de coincidencia literalmente; 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 efecto en plataformas que no sean MS-DOS y MS-Windows.
-u, --unix-byte-offsets Informe las compensaciones de bytes de estilo Unix. Este interruptor hace que grep informe las compensaciones de bytes como si el archivo fuera un archivo de texto de estilo Unix, es decir, con los caracteres CR eliminados. Esto producirá resultados idénticos a ejecutar grep en una máquina Unix. Esta opción no tiene efecto a menos que también se use la opción -b; no tiene ningún efecto en plataformas que no sean MS-DOS y MS-Windows.
-V, --versión Imprima el número de versión de grep al error estándar. Este número de versión debe incluirse en todos los informes de errores (ver más abajo).
-v, --invert-match Invierta el sentido de coincidencia para seleccionar líneas no coincidentes.
-w, --word-regexp Seleccione solo aquellas 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 constituyente que no sea una palabra. Del mismo modo, debe estar al final de la línea o seguido de un carácter constituyente que no sea una palabra. Los caracteres constitutivos de las palabras son letras, dígitos y guiones bajos.
-x, --line-regexp Seleccione solo aquellas coincidencias que coincidan exactamente con la línea completa.
-y Sinónimo obsoleto de -i.
-Z, --nulo Genera un byte cero (el carácter ASCII NULL) en lugar del carácter que normalmente sigue a un nombre de archivo. Por ejemplo, grep -lZ genera 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 líneas nuevas. Esta opción se puede usar con comandos como find -print0, perl -0, sort -z y xargs -0 para procesar nombres de archivos arbitrarios, incluso aquellos que contienen caracteres de nueva línea.

Expresiones regulares

Una expresión regular es un patrón que describe un conjunto de cadenas. Las expresiones regulares se construyen de manera análoga a las expresiones aritméticas, mediante el uso de varios operadores para combinar expresiones más pequeñas.

Grep comprende dos versiones diferentes de la sintaxis de expresión regular: "básica" y "extendida". En GNU grep, no hay diferencia en la funcionalidad disponible usando cualquiera de las sintaxis. En otras implementaciones, las expresiones regulares básicas son menos potentes. La siguiente descripción se aplica a las expresiones regulares extendidas, que se utilizan en egrep; Las diferencias para las expresiones regulares básicas se resumen a continuación.

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 dígitos, son expresiones regulares que coinciden entre sí. Cualquier metacarácter con un significado especial se puede citar precediéndolo con una barra diagonal inversa.

Una expresión de corchete es una lista de caracteres encerrados por [y]. Coincide con cualquier carácter individual en esa lista; si el primer carácter de la lista es el símbolo de intercalación ^, entonces coincide con cualquier carácter que no esté en la lista. Por ejemplo, la expresión regular [0123456789] coincide con cualquier dígito individual.

Dentro de una expresión de paréntesis, una expresión de rango consta de dos caracteres separados por un guión ("-"). Coincide con cualquier carácter individual que se clasifique entre los dos caracteres, inclusive, utilizando la secuencia de clasificación local y el conjunto de caracteres. Por ejemplo, en la configuración regional predeterminada de C, [ad] es equivalente a [abcd]. Muchas configuraciones regionales ordenan los caracteres en orden de diccionario, y en estas configuraciones regionales [ad] generalmente no es equivalente a [abcd]; podría ser equivalente a [aBbCcDd], por ejemplo. Para obtener la interpretación tradicional de las expresiones de paréntesis, 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 de paréntesis, como sigue. Sus nombres se explican por sí mismos y son [: alnum:], [: alpha:], [: cntrl:], [: digit:], [: graph:], [: lower:], [: print:] , [: punct:], [: espacio:], [: upper:] y [: xdigit:]. Por ejemplo, [[: alnum:]] significa [0-9A-Za-z], excepto que la última forma depende de la localización C y la codificación de caracteres ASCII, mientras que la primera es independiente de la configuración regional y el conjunto de caracteres. (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 lista de corchetes). La mayoría de los metacaracteres pierden su significado especial dentro de las listas. Para incluir un literal] colóquelo primero en la lista. Del mismo modo, para incluir un ^ literal, colóquelo en cualquier lugar menos primero. Finalmente, para incluir un literal, colóquelo al final.

El período . coincide con cualquier personaje individual. El símbolo w es sinónimo de [[: alnum:]] y W es sinónimo de [^ [: alnum]].

El símbolo de intercalación ^ y el signo de dólar ("$") son metacaracteres que coinciden respectivamente con la cadena vacía al principio y al final de una línea. 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.

Una expresión regular puede ser seguida por uno de varios operadores de repetición:

? El elemento anterior es opcional y coincide como máximo una vez.
* El elemento anterior coincidirá cero o más veces.
+ El elemento anterior se combinará una o más veces.
{norte} El elemento anterior coincide exactamente n veces.
{norte,} El elemento anterior se corresponde n o más veces.
{Nuevo Méjico} El elemento anterior se corresponde al menos n veces, pero no más de m veces.

Se pueden concatenar dos expresiones regulares; la expresión regular resultante coincide con cualquier cadena formada concatenando dos subcadenas que coinciden respectivamente con las subexpresiones concatenadas.

El operador infijo puede unir dos expresiones regulares; la expresión regular resultante coincide con cualquier cadena que coincida con cualquiera de las subexpresiones.

La repetición tiene prioridad sobre la concatenación, que a su vez tiene prioridad sobre la alternancia. Una subexpresión completa puede estar entre paréntesis para anular estas reglas de precedencia.

La referencia inversa n, donde n es un solo dígito, coincide con la subcadena previamente emparejada por la enésima subexpresión entre paréntesis de la expresión regular.

En las expresiones regulares básicas, los metacaracteres?, +, {, |, (Y) pierden su significado especial; en su lugar use las versiones con barra invertida ?, +, {, |, (, y ).

El egrep tradicional no admitía el {metacaracteres, y algunas implementaciones de egrep admiten {en su lugar, por lo que los scripts portátiles deberían evitar {en los patrones de egrep y deberían usar [{] para que coincida con un literal {.

GNU egrep intenta admitir el uso tradicional asumiendo que {no es especial si sería el comienzo de una especificación de intervalo no válida. Por ejemplo, el comando de shell egrep '{1' busca la cadena de dos caracteres {1 en lugar de informar un error de sintaxis en la expresión regular. POSIX.2 permite este comportamiento como una extensión, pero los scripts portátiles deberían evitarlo.

Variables de entorno

El comportamiento de Grep se ve afectado por las siguientes variables de entorno:

Una configuración regional LC_foo se especifica examinando las tres variables de entorno LC_ALL, LC_foo, LANG, en ese orden. La primera de estas variables que se establece especifica la configuración regional. Por ejemplo, si LC_ALL no está configurado, pero LC_MESSAGES está configurado como pt_BR, entonces se usa portugués brasileño para la configuración regional LC_MESSAGES. La configuración regional C se utiliza si no se establece ninguna de estas variables de entorno, o si el catálogo de configuración regional no está instalado, o si grep no se compiló con el soporte de idioma nacional (NLS).

GREP_OPTIONS

Esta variable especifica las opciones predeterminadas que se colocarán delante de las opciones explícitas. Por ejemplo, si GREP_OPTIONS es '--binary-files = without-match --directories = skip', grep se comporta como si las dos opciones --binary-files = without-match y --directories = skip se hubieran especificado antes de cualquier opciones explícitas Las especificaciones de las opciones están separadas por espacios en blanco. Una barra invertida escapa al siguiente carácter, por lo que puede usarse para especificar una opción que contenga espacios en blanco o una barra invertida.

GREP_COLOR

Especifica el marcador para resaltar.

LC_ALL, LC_COLLATE, LANG

Estas variables especifican la configuración regional LC_COLLATE, que determina la secuencia de clasificación utilizada para interpretar expresiones de rango como [az].

LC_ALL, LC_CTYPE, LANG

Estas variables especifican la configuración regional LC_CTYPE, que determina el tipo de caracteres, por ejemplo, qué caracteres son espacios en blanco.

LC_ALL, LC_MESSAGES, LANG

Estas variables especifican la configuración regional LC_MESSAGES, que determina el idioma que grep usa para los mensajes. La configuración regional predeterminada de C utiliza mensajes en inglés americano.

POSIXLY_CORRECT

Si se establece, grep se comporta como lo requiere POSIX.2; de lo contrario, grep se comporta más como otros programas de GNU. POSIX.2 requiere que las opciones que siguen a los nombres de archivo se traten como nombres de archivo; de manera predeterminada, estas opciones están permutadas al principio de la lista de operandos y se tratan como opciones. Además, POSIX.2 requiere que las opciones no reconocidas se diagnostiquen como "ilegales", pero como no están realmente en contra de la ley, el valor predeterminado es diagnosticarlas como "no válidas". POSIXLY_CORRECT también deshabilita _N_GNU_nonoption_argv_flags_, que se describe a continuación.

_N_GNU_nonoption_argv_flags_

(Aquí N es el ID de proceso numérico de grep.) Si el i-ésimo carácter del valor de esta variable de entorno es 1, no considere que el i-ésimo operando de grep sea una opción, incluso si parece ser uno. Un shell puede poner esta variable en el entorno para cada comando que ejecuta, especificando qué operandos son el resultado de la expansión de comodines del nombre de archivo y, por lo tanto, no deben tratarse como opciones. Este comportamiento solo está disponible con la biblioteca GNU C, y solo cuando POSIXLY_CORRECT no está configurado.

Ejemplos

egrep "soporte | ayuda | windows" myfile.txt

Busque patrones de ayuda de soporte y ventanas en el archivo myfile.txt.

egrep '^ [a-zA-Z] +

#039; myfile.txt

Haga coincidir las líneas en myfile.txt que comienzan una línea con una palabra alfabética que también termina la línea.

egrep -c '^ begin | end

#039; myfile.txt

Cuente el número de líneas en myfile.txt que comienzan con la palabra 'comenzar' o terminan con la palabra 'fin'.

Comandos relacionados

fgrep - Filtrar texto que coincide con una cadena de caracteres fijos.grep - Filtrar texto que coincide con una expresión regular.sed - Una utilidad para filtrar y transformar text.sh - El intérprete de comandos de shell Bourne.

#goog-gt-tt {display:none !important;}.goog-te-banner-frame {display:none !important;}.goog-te-menu-value:hover {text-decoration:none !important;}body {top:0 !important;}#gtranslate_element {display:none!important;}

var gt_not_translated_list = ["-B NUM,","-b, --byte-offset","-c, --count","-P, --perl-regexp","-G, --basic-regexp","-H, --with-filename","-h, --no-filename","-m NUM,","--mmap","-q, --quiet, --silent","-s, --no-messages","-u, --unix-byte-offsets","-v, --invert-match","-w, --word-regexp","-x, --line-regexp","GREP_OPTIONS","GREP_COLOR","LC_ALL, LC_COLLATE, LANG","LC_ALL, LC_CTYPE, LANG","LC_ALL, LC_MESSAGES, LANG","POSIXLY_CORRECT","_N_GNU_nonoption_argv_flags_"];
document.cookie = "googtrans=/en/es; domain=.balogs.xyz";
document.cookie = "googtrans=/en/es";
function GTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: 'en',layout: google.translate.TranslateElement.InlineLayout.SIMPLE,autoDisplay: false,multilanguagePage: true}, 'gtranslate_element');}