Cómo buscar por contenido en Ubuntu

8

Me gustaría buscar en todo el servidor por contenido. (Archivo de texto)

Cuando intento grep -rl "texto aquí", se congela.

¿Como lo harias?

¿Y cuánto tarda generalmente?

webnat0
fuente

Respuestas:

17

Debe especificar un archivo cuando use el grepcomando. Con el comando que está utilizando, está buscando en la entrada estándar ...

Tratar grep -r "test" directory.

ChrisJ
fuente
7
find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

Lo que se puede explicar en humanos hablan como:

  1. encontrar
  2. empezando desde /
  3. en todos los archivos llamados * .txt (las comillas deben omitir la interpretación de shell)
  4. con los golpes resultantes, realice lo siguiente
  5. grep "prueba aquí"
  6. en el archivo {}
  7. end of exec (\;) escapado final de la declaración
  8. imprimir los archivos que coinciden
  9. redirige los mensajes de error en el receptor (ya que es posible que no seas root, de lo contrario solo sudo).
Alain Pannetier
fuente
dice "encontrar: argumento perdido para 'grep'"
webnat0
trabaja aquí ¿Cómo reemplazaste "prueba aquí"?
Alain Pannetier
1
@Daeyun: solo hay una barra invertida.
Pausado hasta nuevo aviso.
1
@Dennis. Depende de tu lengua materna. En Japón y Corea, hay varios conjuntos de caracteres en los que la barra diagonal inversa también se representa como el signo Yen o el signo Wong (0x5c). Además, eche un vistazo a u + 20E5. En el pasado, ha habido varios exploits en IIS en los que se podía explorar todo el disco (donde IIS tenía su raíz) de una PC simplemente mezclando barras oblicuas y barras falsas (otro Unicode equivalente convertido en el plan ASCII) y al menos uno con superposición de solidus inversa.
Alain Pannetier
0

olvida especificar qué tipo de archivos desea buscar,
asegúrese de iniciar sesión como root

cd /
grep -rl "text here" *  > /tmp/match.txt

esto va a llevar mucho tiempo, y puede recopilar los resultados más adelante marcando /tmp/match.txt

ajreal
fuente
0

El siguiente comando busca en todos los archivos que terminan en .txt en el directorio de trabajo actual y en todos los subdirectorios:

find . -type f -name '*.txt' -exec grep -Hn "text here" {} \;


fuente