Puede usar la grep
herramienta para buscar de forma recursiva la carpeta actual con -r
parámetros, como:
grep -r "pattern" .
Nota: -r
- Recursivamente busca subdirectorios.
Para buscar dentro de archivos específicos, puede usar una sintaxis global como:
grep "class foo" **/*.c
Nota: Al usar la opción global ( **
), escanea todos los archivos de forma recursiva con una extensión o patrón específico. Para habilitar esta sintaxis, ejecute: shopt -s globstar
. También puede usarlo **/*.*
para todos los archivos (excepto los ocultos y sin extensión) o cualquier otro patrón.
Si tiene el error de que su argumento es demasiado largo, considere reducir su búsqueda, o use una find
sintaxis en su lugar como:
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
Alternativamente uso ripgrep
.
Si está trabajando en proyectos más grandes o archivos grandes, debe usarlos ripgrep
, como:
rg "pattern" .
Consulte los documentos, los pasos de instalación o el código fuente en la página del proyecto GitHub .
Es mucho más rápido que cualquier otra herramienta como GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
o similares, ya que se construye en la parte superior del motor de expresiones regulares de Rust que utiliza autómatas finitos, SIMD y optimizaciones literales agresivas para que la búsqueda sea muy rápido.
Es compatible con los patrones de ignorar especificados en los .gitignore
archivos, por lo que una sola ruta de archivo se puede comparar con múltiples patrones globales simultáneamente.
Puede usar los parámetros comunes como:
-i
- Búsqueda insensible.
-I
- Ignorar los archivos binarios.
-w
- Buscar las palabras completas (en oposición a la coincidencia parcial de palabras).
-n
- Muestra la línea de tu partido.
-C
/ --context
(p -C5
. ej. ): aumenta el contexto para que vea el código circundante.
--color=auto
- Marcar el texto correspondiente.
-H
- Muestra el nombre del archivo donde se encuentra el texto.
-c
- Muestra el recuento de líneas coincidentes. Se puede combinar con -H
.