[opensuse-es] Encontrar string específico
Hola amigos, estoy en la siguiente situación: debo encontrar cierto archivo de texto entre cientos y cientos (miles) de archivos de texto (de una recuperación mediante testdisk). Como estos han perdido su nombre original no me queda otra que, ya sea, buscarlo a mano o buscarlo por algo de su contenido creo yo, si alguien pudiera ayudarme le estaría muy agradecido. -- Saludos, Mauricio J. Adonis C. ------------------------------------------ Usuario Linux # 482032 Usuario Ubuntu # 25554 ------------------------------------------ -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Thu, 04 Feb 2010 17:49:18 -0300, Mauricio J. Adonis C. escribió:
Hola amigos, estoy en la siguiente situación: debo encontrar cierto archivo de texto entre cientos y cientos (miles) de archivos de texto (de una recuperación mediante testdisk). Como estos han perdido su nombre original no me queda otra que, ya sea, buscarlo a mano o buscarlo por algo de su contenido creo yo, si alguien pudiera ayudarme le estaría muy agradecido.
Tengo un "one-liner" guardado, a ver si te vale: find /directorio/a/buscar/* -type f -exec grep -H 'palabreja' {} \; Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
On Jueves, 4 de Febrero de 2010 21:58:47 Camaleón escribió:
El Thu, 04 Feb 2010 17:49:18 -0300, Mauricio J. Adonis C. escribió:
Hola amigos, estoy en la siguiente situación: debo encontrar cierto archivo de texto entre cientos y cientos (miles) de archivos de texto (de una recuperación mediante testdisk). Como estos han perdido su nombre original no me queda otra que, ya sea, buscarlo a mano o buscarlo por algo de su contenido creo yo, si alguien pudiera ayudarme le estaría muy agradecido.
Tengo un "one-liner" guardado, a ver si te vale:
find /directorio/a/buscar/* -type f -exec grep -H 'palabreja' {} \;
Saludos,
zass !! te me has adelantado... pero mi one-liner mola mas :-P Salu2 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Thu, 04 Feb 2010 22:39:48 +0100, Angel escribió:
On Jueves, 4 de Febrero de 2010 21:58:47 Camaleón escribió:
Tengo un "one-liner" guardado, a ver si te vale:
find /directorio/a/buscar/* -type f -exec grep -H 'palabreja' {} \;
zass !! te me has adelantado...
pero mi one-liner mola mas :-P
Ná, el que he puesto yo le muestra la cadena de texto al usuario, así no tiene que abrir el archivo para verificarlo; es más práctico >:-) Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2010-02-04 a las 17:49 -0300, Mauricio J. Adonis C. escribió:
Hola amigos, estoy en la siguiente situación: debo encontrar cierto archivo de texto entre cientos y cientos (miles) de archivos de texto (de una recuperación mediante testdisk). Como estos han perdido su nombre original no me queda otra que, ya sea, buscarlo a mano o buscarlo por algo de su contenido creo yo, si alguien pudiera ayudarme le estaría muy agradecido.
Cambias al directorio donde estén todos, y: grep -i "cadena" * y te encontrará esa cadena. Hay un montón de opciones. Otra posibilidad e usar el Midnight comander (mc), que tiene una busqueda de ficheros conteniendo una cadena, y que al encontrarlos te permite mirarlos, o marcarlos para copiarlos o lo que quieras. - -- Saludos Carlos E. R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAktrN2AACgkQtTMYHG2NR9VH7wCfTs0bsz4U925JJzhqIm0gNZEu tLYAn3869aE2Cpemj8FgyXm3zJFTOAoR =ouvL -----END PGP SIGNATURE-----
El jue, 04-02-2010 a las 22:08 +0100, Carlos E. R. escribió:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
El 2010-02-04 a las 17:49 -0300, Mauricio J. Adonis C. escribió:
Hola amigos, estoy en la siguiente situación: debo encontrar cierto archivo de texto entre cientos y cientos (miles) de archivos de texto (de una recuperación mediante testdisk). Como estos han perdido su nombre original no me queda otra que, ya sea, buscarlo a mano o buscarlo por algo de su contenido creo yo, si alguien pudiera ayudarme le estaría muy agradecido.
Cambias al directorio donde estén todos, y:
grep -i "cadena" *
y te encontrará esa cadena. Hay un montón de opciones. Otra posibilidad e usar el Midnight comander (mc), que tiene una busqueda de ficheros conteniendo una cadena, y que al encontrarlos te permite mirarlos, o marcarlos para copiarlos o lo que quieras.
- -- Saludos Carlos E. R.
Gracias Carlos, Camaleón y Ángel, probé todas las opciones, incluyendo mc. Lo más sencillo, claro y rápido (rapidísimo) es ir con grep, que presenta el nombre del archivo y al lado un fragmento que contiene el string resaltado en rojo, o sea es lo ideal. Lo digo para otros que quizás necesiten realizar este tipo de búsqueda. Gracias nuevamente. -- Saludos, Mauricio J. Adonis C. ------------------------------------------ Usuario Linux # 482032 Usuario Ubuntu # 25554 ------------------------------------------ -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Viernes, 5 de Febrero de 2010 00:52:47 Mauricio J. Adonis C. escribió:
El jue, 04-02-2010 a las 22:08 +0100, Carlos E. R. escribió:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
El 2010-02-04 a las 17:49 -0300, Mauricio J. Adonis C. escribió:
Hola amigos, estoy en la siguiente situación: debo encontrar cierto archivo de texto entre cientos y cientos (miles) de archivos de texto (de una recuperación mediante testdisk). Como estos han perdido su nombre original no me queda otra que, ya sea, buscarlo a mano o buscarlo por algo de su contenido creo yo, si alguien pudiera ayudarme le estaría muy agradecido.
Cambias al directorio donde estén todos, y:
grep -i "cadena" *
y te encontrará esa cadena. Hay un montón de opciones. Otra posibilidad e usar el Midnight comander (mc), que tiene una busqueda de ficheros conteniendo una cadena, y que al encontrarlos te permite mirarlos, o marcarlos para copiarlos o lo que quieras. Rapidisimo?
Bueno para empezar en un escenario de "cientos de miles de archivos" lo primero seria repartirlos en una estructura densa de directorios para evitar el trabajo asociado a enormes entradas de directorio... un esquema tal <00-FF>/<00-FF> al estilo Squid repartiría todo ese mogollón entre unos 64k directorios.. no estaría de mas renombrar cada fichero al md5 de su contenbido o al sha1 lo segundo bien el grep basico, bien de Camaleon o el mio y combinado con la opción de Xargs -Pnum_procs que te puse para repartir el trabajo entre varios procesos y aprovechar todas las CPUS si no eran tantos ficheros está claro que un simple grepo te habrá ido de vicio... yo te digo porque he estado haciendo proceso de MP3 con entre 30 y 50 millones de ficheros (de 1Kb aprox) y se notaba bastante al menos con los ext2, ext3... (para el que tenga curiosidad cojase una coleccion de mptreses de aprox 5000 pistas y partase cada mp3 en sus unidades fundamentales grabandola en ficheros separados...) Salu2
- -- Saludos Carlos E. R.
Gracias Carlos, Camaleón y Ángel, probé todas las opciones, incluyendo mc. Lo más sencillo, claro y rápido (rapidísimo) es ir con grep, que presenta el nombre del archivo y al lado un fragmento que contiene el string resaltado en rojo, o sea es lo ideal. Lo digo para otros que quizás necesiten realizar este tipo de búsqueda.
Gracias nuevamente.
-- Saludos, Mauricio J. Adonis C. ------------------------------------------ Usuario Linux # 482032 Usuario Ubuntu # 25554 ------------------------------------------
-- Este correo no tiene dibujos. Las formas extrañas en la pantalla son letras. __________________________________________ Clist UAH a.k.a Angel __________________________________________ Evitar la programación defensiva. Manual de Erlang -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2010-02-05 a las 09:49 +0100, Angel Alvarez escribió:
Rapidisimo?
Bueno para empezar en un escenario de "cientos de miles de archivos" lo primero seria repartirlos en una estructura densa de directorios para evitar el trabajo asociado a enormes entradas de directorio...
un esquema tal <00-FF>/<00-FF>
al estilo Squid repartiría todo ese mogollón entre unos 64k directorios.. no estaría de mas renombrar cada fichero al md5 de su contenbido o al sha1
...
yo te digo porque he estado haciendo proceso de MP3 con entre 30 y 50 millones de ficheros (de 1Kb aprox) y se notaba bastante al menos con los ext2, ext3...
Millones de ficheros en un sólo directorio, si el sistema de ficheros es reiserfs, es rapidísimo, sin penalización. Es en ext donde es lento, y mucho más lento en fat. En xfs no lo se, pero sospecho que también es rápido. - -- Saludos Carlos E. R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAktsdg4ACgkQtTMYHG2NR9VniACgl6J+njlsmhPqFb57rLVbdO+O qxwAnjWsAyFkHXQPv6LCyKp5dvSUP6+i =StPL -----END PGP SIGNATURE-----
On Viernes, 5 de Febrero de 2010 20:48:20 Carlos E. R. escribió:
El 2010-02-05 a las 09:49 +0100, Angel Alvarez escribió:
Rapidisimo?
Bueno para empezar en un escenario de "cientos de miles de archivos" lo primero seria repartirlos en una estructura densa de directorios para evitar el trabajo asociado a enormes entradas de directorio...
un esquema tal <00-FF>/<00-FF>
al estilo Squid repartiría todo ese mogollón entre unos 64k directorios.. no estaría de mas renombrar cada fichero al md5 de su contenbido o al sha1
...
yo te digo porque he estado haciendo proceso de MP3 con entre 30 y 50 millones de ficheros (de 1Kb aprox) y se notaba bastante al menos con los ext2, ext3...
Millones de ficheros en un sólo directorio, si el sistema de ficheros es reiserfs, es rapidísimo, sin penalización. Es en ext donde es lento, y mucho más lento en fat. En xfs no lo se, pero sospecho que también es rápido.
reiserfs kaka!! se comíó mis deberes, (eso si lo hizo muy rápido) Salu2 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2010-02-06 10:49, Angel wrote:
On Viernes, 5 de Febrero de 2010 20:48:20 Carlos E. R. escribió:
Millones de ficheros en un sólo directorio, si el sistema de ficheros es reiserfs, es rapidísimo, sin penalización. Es en ext donde es lento, y mucho más lento en fat. En xfs no lo se, pero sospecho que también es rápido.
reiserfs kaka!! se comíó mis deberes,
(eso si lo hizo muy rápido)
Y los mios se los comió ext3, y xfs, y sí, también reiserfs. Todos comen con hambre pantagruélica, cuando les da por ahí. Mejor que te pille confesado, o sea, con un buen backup. - -- Cheers / Saludos, Carlos E. R. (from 11.2 "Emerald" GM (bombadillo)) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iEYEARECAAYFAkttQE8ACgkQU92UU+smfQU4OQCfXFIno59Ns5/lkUolb43KhZwr /J4An23fXeta0pi5kHrivgN/ZFFlErr7 =Q6vc -----END PGP SIGNATURE----- -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
On Sábado, 6 de Febrero de 2010 11:11:27 Carlos E. R. escribió:
On 2010-02-06 10:49, Angel wrote:
On Viernes, 5 de Febrero de 2010 20:48:20 Carlos E. R. escribió:
Millones de ficheros en un sólo directorio, si el sistema de ficheros es reiserfs, es rapidísimo, sin penalización. Es en ext donde es lento, y mucho más lento en fat. En xfs no lo se, pero sospecho que también es rápido.
reiserfs kaka!! se comíó mis deberes,
(eso si lo hizo muy rápido)
Y los mios se los comió ext3, y xfs, y sí, también reiserfs. Todos comen con hambre pantagruélica, cuando les da por ahí. Mejor que te pille confesado, o sea, con un buen backup.
jeje entonces brindemos por lo que nos une y no por lo que nos separa (yo no tenía backup :-( ) Jarrrrrllll, resaca mala mala mala (Error: Too many franciskanner Weissbier while scheduling task, "juerga nocturna") Saluten -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Content-ID:
El jue, 04-02-2010 a las 22:08 +0100, Carlos E. R. escribió:
Gracias Carlos, Camaleón y Ángel, probé todas las opciones, incluyendo mc. Lo más sencillo, claro y rápido (rapidísimo) es ir con grep, que presenta el nombre del archivo y al lado un fragmento que contiene el string resaltado en rojo, o sea es lo ideal. Lo digo para otros que quizás necesiten realizar este tipo de búsqueda.
Para mi lo ideal es hacer la busqueda, tener los resultados, y poder hacer "enter" en el fichero en cuestión para ver el resto y el contexto - que es lo que hace el 'mc' :-) - -- Saludos Carlos E. R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAkt21usACgkQtTMYHG2NR9UmOACgka9m0XblABWtsB6ZhqRJQec4 z4AAniYHYKlrB+1L4Y7Ev/aZ0Zd4myqd =xAHe -----END PGP SIGNATURE-----
El sáb, 13-02-2010 a las 17:44 +0100, Carlos E. R. escribió:
Para mi lo ideal es hacer la busqueda, tener los resultados, y poder hacer "enter" en el fichero en cuestión para ver el resto y el contexto - que es lo que hace el 'mc' :-)
Las búsquedas con mc son muy lentas. -- Saludos, Mauricio J. Adonis C. ------------------------------------------ Usuario Linux # 482032 Usuario Ubuntu # 25554 ------------------------------------------ -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2010-02-13 a las 22:55 -0300, Mauricio J. Adonis C. escribió:
El sáb, 13-02-2010 a las 17:44 +0100, Carlos E. R. escribió:
Para mi lo ideal es hacer la busqueda, tener los resultados, y poder hacer "enter" en el fichero en cuestión para ver el resto y el contexto - que es lo que hace el 'mc' :-)
Las búsquedas con mc son muy lentas.
No lo veo yo tan lento, pero en cualquier caso, sirve para hacer operaciones sobre las busquedas que con grep no es tan facil, y llevan tiempo extra. - -- Saludos Carlos E. R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAkt33yQACgkQtTMYHG2NR9WpwQCfUl14aPtc4xPly68gXLqk92rk sHgAn2VcLwIbIvSHJZzCtJrBgEixXASx =C6lT -----END PGP SIGNATURE-----
On Jueves, 4 de Febrero de 2010 21:49:18 Mauricio J. Adonis C. escribió:
Hola amigos, estoy en la siguiente situación: debo encontrar cierto archivo de texto entre cientos y cientos (miles) de archivos de texto (de una recuperación mediante testdisk). Como estos han perdido su nombre original no me queda otra que, ya sea, buscarlo a mano o buscarlo por algo de su contenido creo yo, si alguien pudiera ayudarme le estaría muy agradecido.
te vale algo como : find <directorio principal> -type f -print0 | xargs -0 -l100 -n100 -P<numero de procesos> grep -l <cadena de texto> ... deberia darte aquellos fichero que contengan matches aprovechando todas las cpus de que dispongas. creo que asi funciona de primeras pero YMMV. Salu2 -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (6)
-
Angel
-
Angel Alvarez
-
Camaleón
-
Carlos E. R.
-
Carlos E. R.
-
Mauricio J. Adonis C.