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!