grep

Comando egrep de Linux con ejemplos

Comando egrep de Linux con ejemplos
El comando egrep pertenece a la familia del comando grep que se utiliza para la búsqueda de patrones en Linux. Si ha utilizado el comando grep, egrep funciona igual que grep -E (grep Extended regex '). Egrep escanea un archivo específico, línea a línea, e imprime las líneas que contienen la cadena de búsqueda / expresión regular. En este artículo, explicaremos 15 ejemplos útiles de los comandos egrep que ayudarán a los principiantes e incluso a los expertos a realizar búsquedas significativas en Linux Hemos realizado estos ejemplos en un sistema Debian 10 Buster, pero se pueden replicar fácilmente en la mayoría de las distribuciones de Linux.

Ejemplo 1: búsqueda de una cadena específica en un archivo

Este es el uso más común del comando egrep. Lo que debe hacer es especificar una cadena que desea buscar y el nombre de archivo en el que desea buscar esa cadena. El resultado luego muestra la línea completa que contiene la cadena buscada.

Sintaxis:

$ egrep "search_string" nombre de archivo

Ejemplo:

$ egrep archivo de muestra de Debian.TXT

En este ejemplo, busqué la palabra "debian" en el archivo de texto especificado. Puedes ver cómo los resultados muestran la línea completa que contiene la palabra "debian":

Ejemplo 2: búsqueda de una cadena específica en varios archivos

Con el comando egrep, puede buscar una cadena entre varios archivos que residen en el mismo directorio. Solo tiene que ser un poco más específico al proporcionar un "patrón" para los archivos buscados. Esto quedará más claro con el ejemplo que presentaremos.

Sintaxis:

$ egrep "search_string" filename_pattern

Ejemplo:

Aquí, buscaremos la palabra "debian" en todos los .txt especificando el patrón de nombre de archivo de la siguiente manera:

$ egrep "debian" *.TXT

El comando ha impreso todas las líneas, junto con los nombres de archivo que contienen la palabra "debian" de todos los .txt archivos en el directorio actual.

Ejemplo 3: búsqueda recursiva de la cadena en todo el directorio

Cuando desee buscar una cadena en todos los archivos de un directorio y sus subdirectorios, puede hacerlo utilizando la marca -r con el comando egrep.

Sintaxis:

$ egrep -r "cadena_búsqueda" *

Ejemplo:

En este ejemplo, estoy buscando la palabra "muestra" en los archivos de todo el directorio actual (Descargas).

$ egrep -r "muestra" *

Los resultados contienen todas las líneas, junto con los nombres de archivo, que contienen la palabra "muestra" de todos los archivos en el directorio Descargas y sus subdirectorios.

Ejemplo 4: realizar una búsqueda que no distingue entre mayúsculas y minúsculas

Con la bandera -i, puede usar el comando egrep para imprimir los resultados basados ​​en una cadena de búsqueda sin tener que preocuparse por su caso.

Sintaxis:

$ egrep -i "cadena_búsqueda" nombre de archivo

Ejemplo:

Aquí, estoy buscando la palabra "debian" y quiero que los resultados muestren todas las líneas del archivo que contienen la palabra "debian" o "Debian, independientemente de su caso.

$ egrep -i "cadena_búsqueda" nombre de archivo

Puede ver cómo la marca -i me ayudó a obtener todas las líneas que contienen la cadena de búsqueda a través de una búsqueda "insensible" a mayúsculas y minúsculas.

Ejemplo 5: búsqueda de una cadena como palabra completa y no como subcadena

Cuando normalmente busca una cadena a través de egrep, imprime todas las palabras que contienen la cadena como una subcadena. Por ejemplo, buscar la cadena "on" imprimirá todas las palabras que contienen la cadena "on" como "on", "solo", "monitor", "clonar", etc. Si desea que los resultados muestren solo la palabra "on" como una palabra completa y no como una subcadena, puede usar la marca -w con egrep.

Sintaxis:

$ egrep -w "cadena_búsqueda" nombre de archivo

Ejemplo:

Aquí estoy buscando la cadena "on" en un archivo de muestra:

$ egrep -i "en" archivo de muestra.TXT

Puede ver en el resultado anterior que también contiene la palabra "solo". Sin embargo, esto no es lo que quiero, ya que busco exclusivamente la palabra "en". Entonces, este es el comando que usaré en su lugar:

$ egrep -iw "en" archivo de muestra.TXT

Ahora mis resultados de búsqueda solo incluyen las líneas que contienen la palabra "en" como una palabra completa.

Ejemplo 6: imprimir solo los nombres de archivo que contienen la cadena

A veces, solo queremos buscar los nombres de los archivos que contienen una cadena específica, en lugar de imprimir las líneas que la contienen. Esto se puede hacer usando la bandera -l (L minúscula) con el comando egrep.

Sintaxis:

$ egrep -l "cadena_búsqueda" patrón_nombre_archivo

Ejemplo:

Aquí estoy buscando la cadena "muestra" en todos los .txt en el directorio actual:

$ egrep -l muestra *.TXT

Los resultados de la búsqueda solo imprimen el nombre de los archivos que contienen la cadena especificada.

Ejemplo 7: imprimir solo la cadena de búsqueda de un archivo

En lugar de imprimir toda la línea que contiene la cadena de búsqueda, puede usar el comando egrep para imprimir la cadena en sí. La cadena se imprimirá la cantidad de veces que aparezca en el archivo especificado.

Sintaxis:

$ egrep -o "cadena_búsqueda" nombre de archivo

Ejemplo:

En este ejemplo, busco la palabra "Esto" en mi archivo.

$ egrep -o Este archivo de muestra_.TXT

Nota: este uso del comando es útil cuando busca una cadena basada en un patrón de expresión regular. Explicaremos las expresiones regulares en detalle en uno de los siguientes ejemplos.

Ejemplo 8: Mostrar n número de líneas antes, después o alrededor de la cadena de búsqueda

A veces es muy importante conocer el contexto en un archivo donde se usa una cadena específica. El egrep es útil en el sentido de que se puede usar para mostrar la línea que contiene la cadena de búsqueda y también un número específico de líneas antes, después y alrededor de ella.

Este es el archivo de texto de muestra que usaré para explicar los siguientes ejemplos:

N número de líneas después de la cadena de búsqueda:

El uso de la bandera A de la siguiente manera mostrará la línea que contiene la cadena de búsqueda y el número N de líneas después de ella:

$ egrep -A nombre de archivo "search_string"

Ejemplo:

$ egrep -A 2 "muestra" archivo de muestra.TXT

N número de líneas antes de la cadena de búsqueda:

El uso de la bandera B de la siguiente manera mostrará la línea que contiene la cadena de búsqueda y el número N de líneas antes:

$ egrep -B nombre de archivo "search_string"

Ejemplo:

$ egrep -B 2 "muestra" archivo de muestra.TXT

N número de líneas antes de la cadena de búsqueda:

El uso de la bandera C de la siguiente manera mostrará la línea que contiene la cadena de búsqueda y N número de líneas antes y después de ella:

$ egrep -C nombre de archivo "search_string"

Ejemplo:

$ egrep -C 2 "sample" archivo de muestra.TXT

Ejemplo 9: expresión regular coincidente en archivos

El comando egrep se vuelve más poderoso a medida que busca expresiones regulares en lugar de cadenas de búsqueda sólidas en un archivo.

Sintaxis:

$ egrep nombre de archivo "RegularExpressions"

Permítanos explicarle cómo puede usar las expresiones regulares en su búsqueda egrep:

Operador de repetición Usar
? El elemento anterior antes ? es opcional y se combina como máximo una vez

* El elemento anterior antes de * se emparejará cero o más veces
+ El elemento anterior antes de + se emparejará una o más veces
norte El elemento anterior coincide exactamente n número de veces.
norte, El elemento anterior no coincide ni más veces
,metro El elemento anterior se empareja un máximo de m veces
Nuevo Méjico El elemento anterior se empareja al menos n veces pero no más de m veces

Ejemplo:

En el siguiente ejemplo, las líneas que contienen la siguiente expresión coinciden:

comenzando con "Gnome" y terminando en "programas"

Ejemplo 10: resaltado de la cadena de búsqueda

Cuando configura la variable de entorno GREP_OPTIONS como se muestra a continuación, obtiene su salida con la cadena / patrón de búsqueda resaltado en los resultados:

$ sudo export GREP_OPTIONS = '- color = auto' GREP_COLOR = '100; 8'

A continuación, puede buscar la cadena de la forma que hemos descrito en los ejemplos de este artículo.

Ejemplo 11: Realización de búsqueda inversa en un archivo

Por búsqueda inversa, queremos decir que el comando egrep imprime todo en el archivo, excepto las líneas que contienen la cadena de búsqueda. Usaremos el siguiente archivo de muestra para explicar la búsqueda invertida a través de egrep. Hemos impreso el contenido del archivo usando el comando cat:

Sintaxis:

$ egrep -v "cadena_búsqueda" nombre de archivo

Ejemplo:

Del archivo de muestra que mencionamos, queremos omitir la línea que contiene la palabra "dos" en la salida, por lo que usaremos el siguiente comando:

$ egrep -v "dos" archivo de muestra_.TXT

Puede ver cómo la salida contiene todo el archivo de muestra, excepto la segunda línea que contenía la cadena de búsqueda "dos".

Ejemplo 12: Realización de búsqueda invertida basada en múltiples criterios / patrón de búsqueda

Con el indicador -v, también puede hacer que el comando egrep realice una búsqueda invertida basada en más de una cadena / patrón de búsqueda.

Usaremos el mismo archivo de muestra que mencionamos en el ejemplo 11 para explicar este escenario.

Sintaxis:

$ egrep -v -e "cadena_búsqueda" / ”patrón” -e "cadena_búsqueda" / ”patrón”
… Nombre del archivo

Ejemplo:

Del archivo de muestra que mencionamos, queremos omitir la (s) línea (s) que contienen las palabras "uno" y "dos" en la salida, por lo tanto, usaremos el siguiente comando:

$ egrep -v -e "uno" -e "dos" archivo de muestra_.TXT

Hemos proporcionado dos palabras para omitir usando la bandera -e, por lo tanto, la salida aparecerá de la siguiente manera:

Ejemplo 13: Imprimir el número de líneas que coinciden con la cadena de búsqueda

En lugar de imprimir la cadena buscada desde el archivo o las líneas que lo contienen, puede usar el comando egrep para contar e imprimir el número de líneas que coinciden con la cadena. Este recuento se puede recuperar usando la bandera -c con el comando egrep.

Sintaxis:

$ egrep -c "cadena_búsqueda" nombre de archivo

Ejemplo:

En este ejemplo, usaremos la bandera -c para contar el número de líneas que contienen la palabra "Esto" en nuestro archivo de muestra:

$ egrep -c "Este" nombre de archivo

También puede utilizar la función de búsqueda invertida aquí para contar e imprimir el número de líneas que no contienen la cadena de búsqueda: 

$ grep -v -c "cadena_búsqueda" nombre de archivo

Ejemplo 14: Visualización del número de línea donde coincide la cadena

Con la bandera -n, puede hacer que el comando egrep imprima la línea coincidente junto con el número de línea que contiene la cadena de búsqueda.

Sintaxis:

$ grep -n "cadena_búsqueda" nombre de archivo

Ejemplo:

$ grep -n "Este" archivo de muestra_.TXT

Puede ver cómo se muestran los números de línea en los resultados de la búsqueda.

Ejemplo 15: Visualización de la posición en el archivo donde coincide la cadena de búsqueda

Si desea saber la posición en el archivo donde existe la cadena de búsqueda, puede usar la marca -b con el comando egrep.

$ grep -o -b "cadena_búsqueda" nombre de archivo

Ejemplo:

$ grep -o -b "Este" archivo de muestra_.TXT

Los resultados de la búsqueda imprimen el desplazamiento de bytes del archivo donde existe la palabra de búsqueda.Este fue un uso detallado del comando egrep. Al utilizar una combinación de las banderas que se explican en este artículo, puede realizar búsquedas más significativas y complejas en sus archivos.

Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...
Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...
Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...