Table of Contents
12 ejemplos prácticos del comando grep de Linux
¿Alguna vez se ha enfrentado a la tarea de buscar una cadena o patrón en particular en un archivo, pero no tiene idea de por dónde empezar a buscar? Bueno, ¡aquí está grep. al rescate!
12 Ejemplos de comandos Grep
grep. es un potente buscador de patrones de archivos que viene equipado con todas las distribuciones de Linux. Si, por cualquier motivo, no está instalado en su sistema, puede instalarlo fácilmente a través de su administrador de paquetes ( apt-get. en Debian. Ubuntu. y yum. en RHEL. CentOS. Fedora. .
$ sudo apt-get install grep # Debian/Ubuntu $ sudo yum install grep # RHEL/CentOS/Fedora
He descubierto que la forma más fácil de mojarse los pies con grep. es sumergirse y usar algo real ejemplos del mundo.
1. Buscar y encontrar archivos
Digamos que acaba de instalar una copia nueva del nuevo Ubuntu. en su máquina, y que va a proporcionar Python. escribir un guión. Has estado recorriendo la web en busca de tutoriales, pero ves que hay dos versiones diferentes de Python. en uso y no sabes cuál fue instalada en tu sistema por Ubuntu. instalador, o si instaló algún módulo. Simplemente ejecute este comando:
# dpkg-l | grep-i Python Salida de muestra ii python2.7 2.7.3-0ubuntu3.4 Lenguaje interactivo orientado a objetos de alto nivel (versión 2.7) ii python2.7-minimal 2.7.3-0ubuntu3.4 Subconjunto mínimo del lenguaje Python (versión 2.7) ii python-openssl 0.12-1ubuntu2.1 Envoltorio de Python alrededor de la biblioteca OpenSSL ii python-pam 0.4.2-12.2ubuntu4 Una interfaz Python para la biblioteca PAM
Primero, ejecutamos dpkg –l. que enumera los paquetes * .deb. instalados en su sistema. En segundo lugar, canalizamos esa salida a grep –i. python, que dice simples “ir a grep y filtrar y devolver todo lo que contenga ‘python'”. La opción –i. está ahí para ignorar mayúsculas y minúsculas, ya que grep. distingue entre mayúsculas y minúsculas. Usar la opción –i. es un buen hábito para adquirir, a menos que, por supuesto, esté tratando de concretar una búsqueda más específica.
2. Buscar y filtrar archivos
freestar.config.enabled_slots.push
El grep. también se puede utilizar para buscar y filtrar dentro de archivos individuales o varios archivos. Tomemos este escenario:
Tiene algunos problemas con su servidor web Apache. y se ha comunicado con uno de los muchos foros increíbles en la red para pedir ayuda. El alma amable que te responde te ha pedido que publiques el contenido de tu archivo /etc/apache2/sites-available/default-ssl. ¿No sería más fácil para ti, el tipo que te ayuda y todos los que lo leen, si pudieras eliminar todas las líneas comentadas? ¡Bien tu puedes! Simplemente ejecute esto:
# grep –v “#”/etc/apache2/sites-available/default-ssl
La opción –v. le dice a grep. para invertir su salida, lo que significa que en lugar de imprimir líneas coincidentes, haga lo contrario e imprima todas las líneas que no coincidan con la expresión, en este caso, las #. líneas comentadas.
3. Buscar todos los archivos .mp3 solamente
El grep. puede ser muy útil para filtrar desde stdout. Por ejemplo, supongamos que tiene una carpeta completa llena de archivos de música en varios formatos diferentes. Quieres encontrar todos los archivos * .mp3. del artista JayZ. pero no quieres ninguna de las pistas remezcladas. El uso de un comando de búsqueda. con un par de conductos grep. funcionará:
# encontrar. –Nombre “* .mp3” | grep –i JayZ | grep –vi “remix”
En este ejemplo, usamos find para imprimir todos los archivos con una * extensión .mp3. canalizándolo a grep –i. para filtrar e imprimir todos los archivos con el nombre “ JayZ. y luego otra tubería a grep –vi. que filtra y no imprime todos los nombres de archivo con la cadena (en cualquier case) “ remix. .
Lectura sugerida: 35 ejemplos prácticos del comando Buscar de Linux
4. Mostrar el número de líneas antes o después de la cadena de búsqueda
Otro par de opciones son los interruptores –A. y –B. que muestran la línea y el número coincidentes de líneas que vienen antes o después de la cadena de búsqueda. Si bien la página de manual ofrece una explicación más detallada, me resulta más fácil recordar las opciones como –A. = después. y –B. = antes.
# ifconfig | grep –A 4 eth0 # ifconfig | grep-B 2 ARRIBA
5. Imprime el número de líneas alrededor de la coincidencia
La opción –C. de grep es similar, pero en lugar de imprimir las líneas que vienen antes o después de la cadena, imprime las líneas en cualquier dirección :
# ifconfig | grep –C 2 lo
6. Contar el número de coincidencias
Similar a conectar una cadena grep. para contar palabras (programa wc. , la opción incorporada de grep puede realizar lo mismo para usted:
# ifconfig | grep –c inet6
7. Buscar archivos por cadena dada
La opción –n. para grep. es muy útil cuando se depuran archivos durante errores de compilación. Muestra el número de línea en el archivo de la cadena de búsqueda dada:
# grep –n “main” setup..py
8. Buscar una cadena de forma recursiva en todos los directorios
Si desea buscar una cadena en el directorio actual junto con todos los subdirectorios, puede especificar la opción –r. para buscar recursivamente:
# grep –r “función” *
9. Busca el patrón completo
Pasando la opción –w. para grep busca el patrón completo que está en la cadena. Por ejemplo, usando:
# ifconfig | grep –w “EJECUTANDO”
Imprimirá la línea que contiene el patrón entre comillas. Por otro lado, si intenta:
# ifconfig | grep –w “EJECUTAR”
No se devolverá nada ya que no estamos buscando un patrón, sino una palabra completa.
10. Buscar una cadena en archivos comprimidos con Gzip
Merecen alguna mención los derivados de grep. El primero es zgrep. que, al igual que zcat. se utiliza en archivos comprimidos con gzip. Toma las mismas opciones que grep. y se usa de la misma manera:
# zgrep –i error/var/log/syslog.2.gz
11. Coincidir con la expresión regular en archivos
El egrep. es otro derivado que significa “ Expresión regular global extendida. . Reconoce metacaracteres de expresión adicionales como en +? |. y ().
Sugerido Leer: ¿Cuál es la diferencia entre Grep, Egrep y Fgrep en Linux?
egrep es muy útil para buscar archivos fuente y otras piezas de código, si surge la necesidad. Puede invocarse desde grep normal especificando la opción –E.
# grep –E
12. Buscar una cadena de patrón fijo
El fgrep. busca una cadena de patrón fijo en un archivo o lista de archivos. Es lo mismo que grep –F. Una forma común de usar fgrep. es pasarle un archivo de patrones:
# fgrep –f file_full_of_patterns.txt file_to_search.txt
Este es solo un punto de partida con grep. pero como probablemente pueda ver, es invaluable para una variedad de propósitos. Aparte de los comandos simples de una línea que hemos implementado, grep. se puede usar para escribir trabajos cron. potentes y scripts de shell. robustos, para empezar. .
Sugerido Leer: 11 comandos ‘Grep’ sobre clases de caracteres y expresiones entre corchetes
Sea creativo, experimente con las opciones de la página de manual. y cree expresiones grep. que sirven a sus propios propósitos.