Cómo encontrar todos los archivos con un texto específico usando Linux Shell
- 4816
- 293
- Claudia Baca
Objetivo
El siguiente artículo proporciona algunos consejos útiles sobre cómo encontrar todos los archivos dentro de cualquier directorio específico o sistema de archivos completo que contenga cualquier palabra o cadena específica.
Dificultad
FÁCIL
Convenciones
- # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de
sudo
dominio - ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado
Ejemplos
Encuentre todos los archivos con una cadena específica de no recursión
El primer ejemplo de comando buscará una cadena estirar
En todos los archivos dentro /etc/
directorio al tiempo que excluye cualquier subdirectorios:
# grep -s estiramiento/etc/*/etc/os-release: bittle_name = "debian gnu/linux 9 (estiramiento)"/etc/os-release: versión = "9 (estiramiento)"
El -s
La opción GREP suprimirá los mensajes de error sobre archivos inexistentes o inexistentes. La salida muestra nombres de archivo, así como imprime la línea real que contiene una cadena solicitada.
Encuentre todos los archivos con una cadena específica recursivamente
El comando anterior omitió todos los subdirectorios. Buscar recursivamente significa también atravesar todos los subdirectorios. El siguiente comando Linux buscará una cadena estirar
En todos los archivos dentro /etc/
Directorio que incluye todos los subdirectorios:
# grep -r estiramiento/etc/*/etc/apt/fuentes.Lista:# Deb Cdrom: [Pruebas de Debian Gnu/Linux _stretch_-Snapshot oficial AMD64 Netinst Binary-1 20170109-05: 56]/estirado Main/etc/apt/fuentes.Lista: #Deb Cdrom: [Pruebas de Gnu/Linux de Debian _stretch_-Instantánea oficial AMD64 Netinst Binary-1 20170109-05: 56]/STRING MAIN/ETC/APT/FUENTES.Lista: Deb http: // ftp.au.debian.org/debian/estiramiento main/etc/apt/fuentes.Lista: Deb-Src http: // ftp.au.debian.org/debian/estiramiento main/etc/apt/fuentes.Lista: Deb http: // Seguridad.debian.Org/Debian-Security STRING/ACTUALIZACIONES MAIN/ETC/APT/FUENTES.Lista: Deb-Src http: // Security.debian.Org/Debian-Security STRING/ACTUALIZACIONES MAIN/ETC/DICCIONARIOS COMMON/PALABRAS: BackStretch/etc/Dictionaries-Common/Words: BackStretch's/etc/Dictionaries-Common/Words: BackStretches/etc/diccionarios-Common/Palabras: Homestretch/ etc/diccionarios-comunes/palabras: Homestretch's/etc/diccionarios-comunes/palabras: homestretches/etc/diccionarios-common/palabras: outStetch/etc/diccionarios-comunes/palabras: OutStretched/etc/diccionarios-Common/Palabras: Extretches/Extretches/ etc/diccionarios-comunes/palabras: extirpado/etc/diccionarios-comunes/palabras: estiramiento/etc/diccionarios-comunes/palabras: estiramiento/etc/diccionarios-comunes/palabras: estirado/etc/diccionarios-comunes/palabras: camioneta/ etc/diccionarios-comunes/palabras: camilla/etc/diccionarios-comunes/palabras: camillas/etc/diccionarios-comunes/palabras: estiramientos/etc/diccionarios-comunes/palabras: estiramiento/etc/diccionarios-comunes/palabras: más elástico/más elástico/estiramiento/ etc/diccionarios comunes/palabras:estiramiento/etc/diccionarios comunes/palabras: elástico/etc/grub.d/00_header: background_image -m estiramiento 'make_system_path_relative_to_its_root "$ grub_background"'/etc/os-release: bittle_name = "debian gnu/linux 9 (estiramiento)"/etc/os-release: versión = "9 (estiramiento)"
Buscar todos los archivos que contienen una palabra específica
Lo anterior grep
Ejemplo de comando enumera todos los archivos que contienen cadena estirar
. Que significa las líneas con estiramientos
, estirado
etc. también se muestran. Usa GREP's -w
opción para mostrar solo una palabra específica:
# grep -rw estiramiento/etc/*/etc/apt/fuentes.Lista:# Deb Cdrom: [Pruebas de Debian Gnu/Linux _stretch_-Snapshot oficial AMD64 Netinst Binary-1 20170109-05: 56]/estirado Main/etc/apt/fuentes.Lista: #Deb Cdrom: [Pruebas de Gnu/Linux de Debian _stretch_-Instantánea oficial AMD64 Netinst Binary-1 20170109-05: 56]/STRING MAIN/ETC/APT/FUENTES.Lista: Deb http: // ftp.au.debian.org/debian/estiramiento main/etc/apt/fuentes.Lista: Deb-Src http: // ftp.au.debian.org/debian/estiramiento main/etc/apt/fuentes.Lista: Deb http: // Seguridad.debian.Org/Debian-Security STRING/ACTUALIZACIONES MAIN/ETC/APT/FUENTES.Lista: Deb-Src http: // Security.debian.Org/Debian-Security STRING/ACTUALIZACIONES MAIN/ETC/DICCIONARIOS COMMON/PALABRAS: estiramiento/etc/diccionarios-comunes/palabras: estiramiento/etc/grub/grub.d/00_header: background_image -m estiramiento 'make_system_path_relative_to_its_root "$ grub_background"'/etc/os-release: bittle_name = "debian gnu/linux 9 (estiramiento)"/etc/os-release: versión = "9 (estiramiento)"
Enumere solo los nombres de archivos que contienen un texto específico
Los comandos anteriores pueden producir una salida innecesaria. El siguiente ejemplo solo mostrará todos los nombres de archivo que contienen cadena estirar
dentro /etc/
directorio recursivamente:
# grep -rl estiramiento/etc/*/etc/apt/fuentes.Lista/etc/diccionarios comunes/palabras/etc/grub.D/00_HEADER/ETC/OS-LAGE
Realizar una búsqueda insensible
Todas las búsquedas son de caso por defecto sensibles, lo que significa que cualquier búsqueda de una cadena estirar
solo mostrará archivos que contienen la coincidencia de mayúsculas y minúsculas exactos. Usando GREP's -i
opción El comando también enumerará cualquier línea que contenga Estirar
, ESTIRAR
, Estirar
etc., Por lo tanto, para realizar una búsqueda insensible.
# grep -ril estirado/etc/*/etc/apt/fuentes.Lista/etc/diccionarios-comunes/predeterminado.hash/etc/diccionarios-comunes/palabras/etc/grub.D/00_HEADER/ETC/OS-LAGE
Incluir o excluir nombres de archivos específicos de la búsqueda
Usando grep
comando también es posible incluir solo archivos específicos como parte de la búsqueda. Por ejemplo, solo nos gustaría buscar un texto/cadena específico dentro de los archivos de configuración con extensión .confusión
. El siguiente ejemplo encontrará todos los archivos con extensión .confusión
dentro /etc
directorio que contiene cadena intento
:
# Grep -ril Bash /etc /*.conf o # grep -ril --include = \*.Conf Bash /etc /* /etc /adduser.confusión
Del mismo modo, usando --excluir
Opción Podemos excluir cualquier nombre de archivo específico:
# grep -ril --exclude = \*.conf base/etc/*/etc/alternativas/ver/etc/alternativas/vim/etc/alternativas/vi/etc/alternativas/vimdiff/etc/alternativas/rvim/etc/alternativas/ex/etc/alternativas/rview/etc /intento.bashrc /etc /bash_completion.d/grub/etc/cron.diario/apt-compat/etc/cron.diario/exim4-base/etc/diccionarios-comunes/predeterminado.hash/etc/diccionarios-comunes/palabras/etc/inputrc/etc/passwd/etc/passwd-/etc/perfil/etc/shells/etc/skel/.perfil/etc/skel/.bashrc/etc/skel/.bash_logout
Excluir directorios específicos de la búsqueda
Lo mismo que con los archivos GREP también puede excluir directorios específicos de la búsqueda. Usar --Excluir-Dir
opción para excluir el directorio de la búsqueda. El siguiente ejemplo de búsqueda encontrará todos los archivos que contienen cadena estirar
dentro /etc
directorio y excluir /etc/comida.d
De la búsqueda:
# grep --exclude-diir =/etc/grub.D -rwl estiramiento/etc/*/etc/apt/fuentes.Lista/etc/diccionarios-comunes/palabras/etc/oso
Muestra un número de línea que contiene cadena buscada
Mediante el uso -norte
Opción GREP también proporcionará una información sobre un número de línea donde se encontró la cadena específica:
# Grep -rni Bash /etc /*.conf /etc /adduser.conf: 6: dshell =/bin/bash
Encuentre todos los archivos que no contienen una cadena específica
El último ejemplo usará -V
Opción para enumerar todos los archivos que no contienen una palabra clave específica. Por ejemplo, la siguiente búsqueda enumerará todos los archivos dentro /etc/
directorio que no contiene cadena estirar
:
# grep -rlv estiramiento /etc /*
Tutoriales de Linux relacionados:
- Cosas para instalar en Ubuntu 20.04
- Comandos de Linux: los 20 comandos más importantes que necesitas ..
- Comandos básicos de Linux
- Cómo encontrar una cadena o texto en un archivo en Linux
- Cómo Grep Correntemente para el texto en scripts bash
- Encuentre todos los archivos que contienen texto específico
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Cómo imprimir el árbol de directorio usando Linux
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 4
- Ejemplos de consejos y trucos de comandos de comandos útiles - Parte 1
- « Cómo habilitar y deshabilitar el módulo PHP Curl con Apache en Ubuntu Linux
- Debian apt-get Jessie Fuentes.lista »