Sintaxis de GREP más común

Sintaxis de GREP más común
En Linux, grep es una de las muchas herramientas que vienen preinstaladas. En realidad, es un acrónimo que significa "impresión de expresión regular global." El grep El comando puede buscar una cadena en archivos descritos por expresión regular. Si se encuentra alguna coincidencia, grep Imprime el resultado en la consola.

En esta guía, echaremos un vistazo rápido a algunas de las implementaciones más comunes del grep dominio.

El grep estructura de comandos

Cualquier comando GREP tendrá los siguientes componentes.

$ Grep

Común grep sintaxis

Buscando una cadena en un archivo

Esta es la forma más simple de usar el grep dominio. En el siguiente ejemplo, grep Buscará el término "DKMS" (sin cotizaciones) en el archivo APT-Packages instalado.TXT (que contiene todos los paquetes APT instalados en el sistema).

$ GREP "DKMS" APT-Packages instalado.TXT

Se recomienda usar citas dobles ("") para indicar una cadena porque una cadena puede contener caracteres y espacios blancos especiales.

Buscando una cadena en varios archivos

El grep El comando también puede realizar las búsquedas en varios archivos. Todo lo que tiene que hacer es especificar los archivos secuencialmente.

$ GREP "DKMS" APT-PACKAGES INSTALINADO-1.TXT Apt-Packages instalado-2.TXT

En lugar de especificar manualmente los archivos, también puede usar la expresión de comodín (*).

$ GREP "DKMS" Apt-Packages instalados-*.TXT

¿Qué pasaría si quisiéramos realizar la búsqueda en todos los archivos en el directorio actual?? Simplemente establezca la expresión comodín para indicar cada archivo en el directorio actual.

$ Grep "DKMS" *

Como podemos ver, grep Encontré todas las coincidencias en los archivos de texto, pero no manejó bien los directorios. Esto conduce perfectamente al siguiente punto.

Buscando subdirectorios

Por defecto, grep No buscará partidos en los subdirectorios. Si quieres GREP para hacerlo, debes decirlo agregando la bandera "-r."

Intente realizar la búsqueda anterior una vez más con este nuevo truco.

$ GREP -R "DKMS" *

Tenga en cuenta que dadas las capas de subdirectorios y el número de archivos para examinar, grep puede tomar algo de tiempo. En la pantalla, parecerá que está congelado. Entonces, no se asuste si enfrenta situaciones similares.

Verificar el número de línea del partido

Tener el número de línea del grep El partido puede ser un regalo del cielo. Para ver el número de línea del partido, use la bandera "-n."

$ grep -n "dkms" *.TXT

Contando el número de partidos

El grep El comando puede contar el número de coincidencias en el resultado de la búsqueda. Para hacerlo, use la bandera "-l."

$ GREP -C "DKMS" *.TXT

Aquí, grep mostrará el número de coincidencias para cada archivo buscado.

Imprimir el nombre de los archivos coincidentes

A veces, desea saber qué archivos coinciden con el patrón especificado sin el resultado de la búsqueda. Si ese es el caso, usa la bandera "-l."

$ GREP -L "DKMS" *.TXT

Imprimir líneas antes y después de la cadena coincidente

Por defecto, grep imprimirá la línea que encuentra la cadena especificada. Sin embargo, podemos calibrar la salida para imprimir un par de líneas antes y/o después de la coincidencia de cadenas.

Grep imprimirá la cadena coincidente junto con 5 líneas anteriores en la consola en el siguiente comando, gracias a la bandera "-B".

$ GREP -B 5 "DKMS" APT-Packages-Installed-1.TXT

Del mismo modo, también podemos decirle a GREP que imprima varias líneas después de encontrar la cadena coincidente. Para hacerlo, usaremos la bandera "-A."En el siguiente ejemplo, grep imprimirá 5 líneas después de encontrar el partido.

$ GREP -A 5 "DKMS" APT-Packages-Installed-1.TXT

Ahora, es hora de combinar ambas características.

$ GREP -A 5 -B 5 "DKMS" APT-Packages instalados-1.TXT

El comando se vuelve innecesariamente confuso de esta manera. Podemos decirle a Grep que imprima varios antes y después de que se encuentre el partido para resolver esto. Para hacerlo, usaremos la bandera "-C."

$ GREP -C 5 "DKMS" apt-Packages instalado-1.TXT

Tenga en cuenta que la salida será simétrica alrededor de la cadena coincidente si está utilizando el indicador "-c". Si desea un número asimétrico de líneas, debe describirlas por separado usando las banderas "-a" y "-b".

Limitante grep producción

Si está trabajando con un archivo de texto grande que contiene muchas instancias del patrón de búsqueda, entonces el grep La salida imprimirá una gran parte de la salida con mucho desorden. Por ejemplo,

$ GREP "instalado" apt-pakages instalado-1.TXT

Podemos decirle a GREP que limite el número de líneas que puede emitir en tal situación. Para hacerlo, usaremos la bandera "-M."El comando se verá así:

$ GREP -M 10 "instalado" APT-Packages instalado-1.TXT

Aquí, grep solo imprimirá los primeros 10 de los patrones coincidentes.

Usando grep con Stdout

El stdout es una transmisión de archivo. Es una característica poderosa de conchas (como Bash). Es un archivo temporal que contiene la salida del comando anterior. Cuando se ejecuta el siguiente comando, el valor de Stdout se actualiza. Aprender más acerca de Stdin, Stderr, y Stdout en Bash.

El comando GREP también puede funcionar con Stdout contenido. Por ejemplo, puede impedir la salida de un comando para grep para trabajar en.

En el siguiente ejemplo, el comando APT devuelve la lista de todos los paquetes instalados en el sistema. ENCENDimos la salida a grep y busque el término "dkms" en la salida. De acuerdo a grepEl comportamiento predeterminado, imprimirá todas las líneas que contienen la cadena.

$ apt list --instaled | Grep "DKMS"

La salida puede advertir que usar APT en scripts no se recomienda ya que APT no ofrece una interfaz CLI estable. Obtenga más información sobre el Administrador de paquetes APT en Ubuntu.

Pensamientos finales

Esta es una breve guía sobre algunos de los usos más comunes del grep dominio. Para dominar grep, Se recomienda consultar esta mega guía que demuestra 30 ejemplos de GREP.

La página de ayuda de grep Imprime una página corta de todas las opciones disponibles.

$ Grep --help

La página del hombre de grep contiene todas las opciones con explicaciones detalladas.

$ hombre grep

Para principiantes, esta guía sobre grep El comando en Linux es un excelente punto de partida.

Computación feliz!