¿Alguna vez le han pedido que busque una cadena o patrón específico en un archivo, pero no sabía por dónde empezar?Bueno, aquí está grep ¡rescate!
grep es un poderoso buscador de patrones de archivos que viene con cada distribución linuxSi por alguna razón no está instalado en su sistema, puede instalarlo fácilmente a través del administrador de paquetes como se muestra.
$ sudo apt install grep [On Debian, Ubuntu and Mint] $ sudo yum install grep [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/grep [On Gentoo Linux] $ sudo apk add grep [On Alpine Linux] $ sudo pacman -S grep [On Arch Linux] $ sudo zypper install grep [On OpenSUSE]
Encontré que la forma más fácil es usar comando grep Simplemente sumérjase y use algunos ejemplos del mundo real.
Tabla de Contenidos
1. Buscar y encontrar archivos en Linux
Digamos que acaba de instalar el nuevo ubuntu En su máquina, le daría Pitón Escribe el tiro.
Ha estado buscando tutoriales en Internet y descubrió que hay dos versiones diferentes de Pitón En uso, no sabe qué versión de Python instaló el instalador en Ubuntu, o si instaló algún módulo.
Simplemente ejecute el siguiente comando dpkg grep como muestra la imagen:
# dpkg -l | grep -i python
Use el comando Grep para buscar archivos
ii libpython3-stdlib:amd64 3.8.2-0ubuntu2 amd64 interactive high-level object-oriented language (default python3 version) ii libpython3.8:amd64 3.8.10-0ubuntu1~20.04.5 amd64 Shared Python runtime library (version 3.8) ii libpython3.8-minimal:amd64 3.8.10-0ubuntu1~20.04.5 amd64 Minimal subset of the Python language (version 3.8) ii libpython3.8-stdlib:amd64 3.8.10-0ubuntu1~20.04.5 amd64 Interactive high-level object-oriented language (standard library, version 3.8) ii python-apt-common 2.0.0ubuntu0.20.04.8 all Python interface to libapt-pkg (locales) ii python3 3.8.2-0ubuntu2 amd64 interactive high-level object-oriented language (default python3 version) ii python3-apport 2.20.11-0ubuntu27.24 all Python 3 library for Apport crash report handling ii python3-apt 2.0.0ubuntu0.20.04.8 amd64 Python 3 interface to libapt-pkg ii python3-aptdaemon 1.1.1+bzr982-0ubuntu32.3 all Python 3 modules for the server and client of aptdaemon ii python3-aptdaemon.gtk3widgets 1.1.1+bzr982-0ubuntu32.3 all Python 3 GTK+ 3 widgets to run an aptdaemon client ii python3-blinker 1.4+dfsg1-0.3ubuntu1 all fast, simple object-to-object and broadcast signaling library ii python3-brlapi:amd64 6.0+dfsg-4ubuntu6 amd64 Braille display access via BRLTTY - Python3 bindings ...
Primero, corrimos dpkg –l
que enumera los instalados *.deb
paquetes en el sistema.En segundo lugar, canalizamos esa salida al grep –i
python, que simplemente dice «ir a grep y filtrar y devolver todo con ‘Pitón‘ en el interior. «
Este –i
La opción es ignorar el caso porque grep Distingue mayúsculas y minúsculas.usar –i
La selección es una buena práctica para ingresar, a menos que, por supuesto, esté tratando de precisar una búsqueda más específica.
2. Buscar y filtrar archivos en Linux
Este grep También se puede usar para buscar y filtrar dentro de un solo archivo o en varios archivos. Echemos un vistazo a este escenario:
tienes algunos problemas servidor web apachey se ha comunicado con uno de los muchos foros excelentes en la web para obtener ayuda.
La amable persona que te respondió te pidió que publicaras tu contenido. /etc/apache2/apache2.conf documento. ¿No sería más fácil para usted, la persona que lo ayuda y todos los que lo leen si pudiera eliminar todas las líneas comentadas? ¡Bien tu puedes! ejecuta esto:
# grep -v ^\# /etc/apache2/apache2.conf | grep .
Este –v
opción decir grep invierte su salida, lo que significa que en lugar de imprimir líneas coincidentes, hace lo contrario e imprime todas las líneas que no coinciden con la expresión, en este caso, #
línea de comentarios.
Tenga en cuenta que también usamos el grep .
Finalmente, para ocultar la salida de todas las líneas vacías. De esta forma solo podremos ver los ajustes de configuración en el terminal.
Imprima el contenido del archivo excluyendo comentarios y líneas en blanco
DefaultRuntimeDir ${APACHE_RUN_DIR} PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} HostnameLookups Off ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf Include ports.confOptions FollowSymLinks AllowOverride None Require all denied
3. Encuentra todos los archivos .mp3 en Linux
Este grep puede ser muy útil para filtrar salida estándarPor ejemplo, suponga que tiene una carpeta completa llena de archivos de música en varios formatos.
quieres encontrar todo *.mp3
del archivo del artista jay chou, pero no desea ninguna pista remezclada.usa uno encontrar comando hay algunos grep Las tuberías pueden hacer el truco:
# find . –name “*.mp3” | grep –i JayZ | grep –vi “remix”
En este ejemplo usamos Buscar imprimir todos los documentos *.mp3
extensión, lo canaliza a grep –i
filtrar e imprimir el nombre como «jay chou‘ y luego otra pipa para grep –vi
Filtra y no imprime todos los nombres de archivo con cadenas (en cualquier caso)»remezclar«.
[ You might also like: 35 Practical Examples of Linux Find Command ]
4. Muestra el número de líneas antes y después de la cadena de búsqueda
Otras opciones son –A
y –B
Cambie para mostrar las líneas coincidentes y el número de líneas antes o después de la cadena de búsqueda.
Si bien la página de manual proporciona una explicación más detallada, las opciones que encuentro más fáciles de recordar son –A
= espalday –B
= delantero:
# ifconfig | grep -A 4 inet # ifconfig | grep -B 2 UP
5. Imprime el número de líneas alrededor del partido
grep –C
Las opciones son similares, pero en lugar de imprimir las líneas antes o después de la cadena, las líneas se imprimen en cualquier dirección:
# ifconfig | grep -C 2 lo TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 15314 bytes 1593769 (1.5 MB) RX errors 0 dropped 0 overruns 0 frame 0
6. Cuenta el número de coincidencias
Similar a la tubería a grep Conteo de cadenas a palabras (comando wc) Las opciones integradas de grep pueden hacer lo mismo por usted:
# ifconfig | grep -c inet6
7. Busque un archivo por una cadena dada en Linux
Este –n
opciones grep Útil al depurar archivos durante errores de compilación. Muestra el número de línea en el archivo para la cadena de búsqueda dada:
# grep -n "main" setup.py
8. Busque recursivamente una cadena en todos los directorios
Si desea buscar una cadena en el directorio actual y todos sus subdirectorios, puede especificar –r
Opciones de búsqueda recursiva:
# grep -r “function” *
9. Busca en todo el patrón
pasar -w
La opción de grep busca patrones completos en cadenas. Por ejemplo, utilice:
# ifconfig | grep -w "RUNNING"
imprimirá las líneas que contienen el patrón entre comillas. Por otro lado, si intentas:
# ifconfig | grep -w "RUN"
No se devolverá nada porque no estamos buscando un patrón, estamos buscando palabras completas.
10. Busque una cadena en un archivo comprimido
Vale la pena mencionar los derivados de grep.el primero es zgrepEsto es similar a gato gatopor compresión documento.Toma las mismas opciones que grep y usar de la misma manera:
# zgrep -i error /var/log/syslog.2.gz
11. Haz coincidir expresiones regulares en archivos
El comando egrep es otro derivado que significa «Expresiones regulares globales extendidas«. Reconoce metacaracteres de expresión adicionales como at + ? |
y ()
.
[ You might also like: What’s Difference Between Grep, Egrep, and Fgrep in Linux? ]
egrep Útil para buscar archivos fuente y otros fragmentos de código si es necesario.Se puede llamar desde regular grep especificando –E
opciones
# grep -E
12. Busque cadenas de patrones fijos
Este fgrep Busca una cadena de patrón fijo en un archivo o lista de archivos.esto con grep -F
Un uso común fgrep es pasarle el archivo de esquema:
# fgrep –f file_full_of_patterns.txt file_to_search.txt
Ésto es sólo un punto de inicio grep, pero como probablemente pueda ver, es invaluable para una variedad de usos. Además de los comandos simples de una línea que hemos implementado, grep se puede usar para escribir poderoso plan trabajando y robusto guión de shellComo un inicio.
[ You might also like: 11 Advanced Linux ‘Grep’ Commands on Character Classes and Bracket Expressions ]
ponte creativo, prueba página many presente expresión grep Sirve a tus propios propósitos!