Cargando

Cómo encontrar archivos con un texto específico en Linux




Pulsa corazón para recibir avisos de nuevas Respuestas

  AUTOR PREGUNTA

Publicado 20 marzo 2017 - 22:53

Buenas, estoy con un servidor de Linux, donde me he dado cuenta que necesito encontrar unos archivos que tienen un texto específico dentro en un directorio que tiene cientos de archivos.

¿Podéis echarme una mano? Sería para encontrar estos archivos de forma rápida por comandos sin tener que perder horas entrando en cada uno de ellos. Espero haberlo dicho lo más claro posible.

 

Gracias.


  • 3 personas más tuvieron esta duda Yo también
  • Volver arriba

 

Publicado 21 marzo 2017 - 12:41

A ver te cuento. Eso sería con el comando GREP en sistemas Linux. Lo uso muy a menudo ese tema. (Cambia la ruta de ejemplo que pongo /var/log por la que tu quieras).

 

Aquí te dejo del comando Grep algunas opciones que se suelen utilizar (sale en el comando grepp --help):

 

-r, --recursive     Search files recursively
-R, --dereference-recursive Search files recursively and follow symlinks
--include=FILE_PATTERN search only files that match FILE_PATTERN
--exclude=FILE_PATTERN skip files and directories matching FILE_PATTERN
--exclude-from=FILE     skip files matching any file pattern from FILE
--exclude-dir=PATTERN     directories that match PATTERN will be skipped.
-L, --files-without-match     Print file names containing no match
-l, --files-with-matches     Print string containing file names only
-i, --ignore-case     ignore case of search string
-e, --regexp=PATTERN     Use patter to search or specify multiple search strings
-w, --word-regexp     force to match whole words 

 

 

 

1. Buscar una palabra (string) en archivos dentro de carpeta y subcarpetas

 

grep -rlw "palabraAbuscar" /var/log

 

 

 

2. Buscar varias palabras (string) en archivos dentro de carpeta y subcarpetas

 

Con este comando lo que haces es añadir la opción -e que te sirve para poner múltiples strings (palabras a buscar) en archivos que se encuentran en la carpeta que pones y también incluye subdirectorios.

 

grep -rlw -e "palabraAbuscar" -e "palabra2Abuscar" /var/log

 

 

 

3. Buscar palabras en archivos concretos

 

Esto es muy útil si quieres buscar una palabra o string en un formato de archivos concreto. Por ejemplo aquí he usado los .doc. Ten encuenta que incluye la carpeta que pongas y también sus subdirectorios.

 

grep -rlw --include="*.doc" -e "palabraAbuscar" /var/log

 

 

 

Espero que te sirvan!



 

Publicado 21 marzo 2017 - 12:45

Yo dejo estas opciones de comando Grep por si quieres excluir archivos o carpetas de que busque dentro de ellos esas palabras que digas... Serían:

 

Cómo excluir archivos de la búsqueda que realizas con comando GREP

grep -rlw --exclude="*.txt" -e "palabra" carpeta

 

Cómo excluir directorios de la búsqueda que realizas con comando GREP

grep -rlw --exclude-dir="*directiorio*" -e "palabra" carpeta.



 

Publicado 03 enero 2019 - 14:11

Saludos amigo, esta pregunta es una de las más comunes en la web, ya que Linux al ser un sistema operativo independiente, funciona de manera distinta a Windows, ahora bien, te explico que para operar en él se puede hacer mediante el terminal donde no necesitas interfaz de gramática, todo se hace mediante texto, esta opción es mucho más rápida y dinámica.

 

De igual forma, a muchos usuarios se les dificulta encontrar archivos mediante la terminal, de ante mano te comento que no es nada del otro mundo y hoy  aprenderás a hacerlo sin complicación alguna, como todas las explicaciones que ofreces en esta pagina.

 

La primera forma de hacerlo es con el comando “find” o encontrar en ingles

 

 

 

Buscar archivos con comando find

 

 

Paso 1:

 

Como paso inicial debes entrar a la terminal de Linux esto lo puedes hacer dirigiéndote hacia el menú y dándole click a “aplicaciones” luego te aparecerán una serie de opciones donde deberás presionar “accesorios” y por último hacer click en “terminal”

 

Si deseas hacerlo de una forma más práctica también puedes acceder a la terminal presionando “Alt+F2” y escribir lo siguiente “Gnome-terminal” y listo, ya estrás dentro para operar como desees mediante texto.

 

Paso 2:

 

Una vez dentro de la terminal procederás a escribir el texto utilizando el comando o “Constante” find, seguidamente escribirás una barra “/” y la palabra "Name" (nombre en inglés) colocas un guion más el nombre del archivo entre comillas.

 

Para evitar que puedas tener alguna confusión te muestro la manera correcta de como debe quedar el texto en este caso:

 

 find /name-“documento1” no olvides colocarlo tal cual te lo he mostrado para que la terminal lo reconozca sin problemas.

 

También se puede no conocer el nombre exacto del archivo que estás buscando, pero no te preocupes, lo que debes hacer es escribir el comando find + “/” + la palabra “home” + la palabra “carla” + un guion y la palabra “iname” + las comillas utilizando un “*” y la abreviatura “conf” + más otro “*”

 

Debe quedar algo así: find /home/carla-iname “*conf*”

 

Paso 3:

 

Una vez que hayas realizado el texto automáticamente se mostrará el archivo que deseas, solo deberás darle click y podrás acceder a él sin ningún problema.

 

Si desear buscar dentro de un texto específico alguna palabra o párrafo debes utilizar el comando Grep, te muestro rápidamente como hacerlo.

 

 

 

Buscar dentro de un texto específico palabra o párrafo comando Grep

 

Paso 1:

 

Lo primero que harás es ubicarte en la terminal tal y como te explique anteriormente, ya sea de una forma mecánica mediante el menú o presionando "Alt+F2".

 

Paso 2:

 

Una vez dentro deberás escribir el comando “grep” + el texto que desear buscar entre comillas + ”/” + la palabra “home” + “/” y por último agregar escribir un “*”y la palabra “.txt”

 

Debería verse de una manera similar a esta: grep “texto” /home/*.txt

 

Paso 3:

 

Al darle click te buscará automáticamente el texto que hayas colocado, nunca olvides colocar todo tal cual te lo he mostrado para que el terminal de Linux lo reconozca automáticamente.

 

Espero te haya gustado y servido de ayuda, no dudes en escribir si tienes alguna incógnita, hasta la próxima amigo.




X