2010-07-13 09:42:08 +0000 2010-07-13 09:42:08 +0000
179
179

Cómo encontrar archivos con cierto texto en la Terminal

Me gustaría encontrar todos los archivos que contienen una cierta cadena de texto. ¿Cómo lo harías en la Terminal?

Respuestas (5)

299
299
299
2010-07-13 09:47:11 +0000
grep -r 'text goes here' path_goes_here
31
31
31
2010-08-12 22:38:59 +0000

usa el foco

mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"

no te olvides de mirar:

man mdfind
12
12
12
2016-03-03 14:07:18 +0000
  1. A través de Ack
brew install ack 
ack "text goes here"
  1. A través de encontrar
find . |grep "text goes here"
  1. A través de grep
grep -RnslI "text goes here"
4
4
4
2017-06-01 08:00:18 +0000

Puedes elegir uno de los siguientes dependiendo de tus gustos y necesidades. Suponiendo que necesitas buscar archivos que contengan texto - “async”, recursivamente en el directorio actual, puedes hacerlo de una de las formas que se indican a continuación:

Utilizando grep

Utilizando ack

2
2
2
2017-06-01 15:27:29 +0000

La respuesta de Ignacio es genial y me ayudó a encontrar los archivos que contienen cierto texto. El único problema al que me enfrenté fue que al ejecutar este comando todos los archivos aparecerían en una lista, incluyendo uno en el que no aparecía el patrón.

No such file or directory Esto es lo que veo junto a los archivos que no contienen el patrón.

Si en lugar de eso, añade -s al comando, como en:grep -lr "text pattern" ./ -s ; grep -lr "text pattern" [PATH DIRECTORY] -s se usa, sólo le mostrará qué archivos contienen el patrón.

De forma similar, si se usa el comando grep -nr "text pattern" ./ -s ; grep -nr "text pattern" [PATH OF DIRECTORY] -s, imprime el archivo más el número de línea, y la ocurrencia del patrón.

Por favor, corríjame si mi comprensión es incorrecta. Referencia: ¿Cómo puedo hacer que grep no imprima los errores de ‘No such file or directory’?