Cómo encontrar una cadena o palabra específica en archivos y directorios
¿Desea encontrar todos los archivos que contienen una palabra o cadena de texto en particular en todo su sistema Linux o en un directorio determinado? Este artículo lo guiará sobre cómo hacerlo, aprenderá a buscar de forma recursiva en los directorios para encontrar y enumerar todos los archivos que contienen una determinada cadena de texto.
Una forma sencilla de resolver esto es mediante usando la herramienta de búsqueda de patrones grep, es una utilidad de línea de comandos poderosa, eficiente, confiable y más popular para encontrar patrones y palabras de archivos o directorios en sistemas similares a Unix.
Leer también. 11 comandos avanzados de Linux ‘Grep’ sobre clases de caracteres y expresiones entre corchetes
El siguiente comando enumerará todos los archivos que contienen una línea con el texto “ check_root. , de forma recursiva y agresiva buscando en el directorio ~/bin.
$ grep-Rw ~/bin/-e ‘check_root’
Buscar una palabra en el directorio
Donde la opción-R le dice a grep. que lea todos los archivos en cada directorio, de forma recursiva, siguiendo enlaces simbólicos solo si están en la línea de comandos y la opción -w. le indica que seleccione solo aquellas líneas que contienen coincidencias que forman palabras completas, y-e se usa para especificar la cadena (patrón) que se va a buscar.
freestar.config.enabled_slots.push
Debe usar el comando sudo cuando busque ciertos directorios o archivos que requieren permisos de root (a menos que esté administrando su sistema con la cuenta de root).
$ sudo grep-Rw/-e ‘check_root’
Para ignorar las distinciones entre mayúsculas y minúsculas, utilice la opción-i como se muestra:
$ grep-Riw ~/bin/-e ‘check_root’
Si desea saber la línea exacta donde existe la cadena de texto, incluya la opción-n.
$ grep-Rinw ~/bin/-e ‘check_root’
Buscar cadena con número de línea
Suponiendo que hay varios tipos de archivos en un directorio en el que desea buscar, también puede especificar el tipo de archivos que se buscarán, por ejemplo, por su extensión usando la opción–include.
Este ejemplo le indica a grep que solo examine todos los archivos .sh.
$ grep-Rnw–include = \ *. sh ~/bin/-e ‘check_root’
Además, es posible buscar más de un patrón, usando el siguiente co mmand.
$ grep-Rinw ~/bin/-e ‘check_root’-e ‘netstat’
Encuentra varias palabras en archivos
¡Eso es todo! Si conoce algún otro truco de línea de comandos para encontrar cadenas o palabras en archivos, comparta con nosotros o haga cualquier pregunta sobre este tema, use el formulario de comentarios a continuación.