Dado este ejemplo de estructura de carpetas:
/folder1/file1.txt /folder1/file2.djd /folder2/file3.txt /folder2/file2.fha
¿Cómo hago una búsqueda recursiva de texto en todos los *.txt
archivos con grep
"/"?
( "grep -r <pattern> *.txt"
falla cuando se ejecuta desde "/", ya que no hay .txt
archivos en esa carpeta).
command-line-interface
grep
search
Anders Sandvig
fuente
fuente
-
.grep
es más rápido defind
.es posible que pueda hacer uso de su
zsh
'sEXTENDED_GLOB
opción ( docs )fuente
Puede echar un vistazo a ack en http://betterthangrep.com , que tiene facilidades para seleccionar archivos para buscar por tipo de archivo.
fuente
fuente
La respuesta de Mannis bifurcaría un nuevo proceso grep para cada archivo de texto. Si tiene muchos archivos de texto allí, puede considerar grepping cada archivo primero y elegir los archivos .txt cuando se haga eso:
Eso requiere más disco, pero podría ser más rápido de todos modos.
fuente
Es 2019 y no hay forma de que todavía use grep para la búsqueda recursiva de texto.
En mi humilde opinión, las respuestas de hoy deben incluir ripgrep :
fuente