LevitraGeneric Viagra
viagra online
@Bucio: pew pew ~~

Buscar dentro de archivos

Esto salio de una conversación con Arturo (zeux0r), sobre un comando que busque dentro de los archivos salieron estos;

$> find -name *.html | xargs grep "title"

Lo que hace es buscar dentro de todos los archivos html, la palabra title dentro de los archivos :-) añadiendo un * al final podremos obtener la ruta y el archivo que contiene esa palabra:

$> find -name *.html | xargs grep  title *

Nos arrojaría algo así:

$> find -name *.html | xargs grep  title *
./index.html:				'' +
./index.html:					'{{title}}' +
>

*corregido quite “-r” gracias gunnar.

Muy bueno no? hay muchos comandos, ¿cual te sabes tú?

#Por gunnar
>$ find . -name '*.html' -exec grep -r title \{\} +
#Por GnuGet
>$ grep -Hirn cadena_a_buscar .
#Por Gaspar Fernandez
>$ egrep -R ‘loquequierobuscar’ *.html

Delicious Digg Facebook LinkedIn reddit StumbleUpon Twitter SeparatorEmail Print Friendly

 
 
 

8 comentarios en “Buscar dentro de archivos” . Deja tú comentario

  1. David Valdez

    Esta forma es mas fácil:

    grep -Hirn cadena_a_buscar .

    Y ya, además de hacer lo que tu pusiste da un mejor output.

    y yo soy mas fan de ACK, si puedes usarlo, lo recomiendo :-)

    http://betterthangrep.com/

    ResponderResponder

    usando Mozilla Firefox Mozilla Firefox 5.0 en Mac OS X Mac OS X 10 desde
    julio 2, 2011 @ 20:12:
  2. Gaspar Fernández

    Yo siempre utilizo egrep:

    egrep -R ‘loquequierobuscar’ *.html por ejemplo

    ResponderResponder

    usando Mozilla Firefox Mozilla Firefox 4.0.1 en Linux Linux desde
    julio 2, 2011 @ 20:17:
  3. Gunnar

    Un poco más seguro y eficiente: Evita el uso de xargs, usa más bien el argumento -exec de find. Además, resulta más fácil de leer, en mi siempre humilde opinión:

    $ find . -name '*.html' -exec grep -r title \{\} +

    Como nota, te sugiero especificar *.html entrecomillado, para evitar sorpresas (por ejemplo, si en el directorio actual tienes algunos archivos llamados algo.html y subdirectorios con otros más, tu versión no reporta lo que haya dentro de los subdirectorios… Queda como ejercicio al lector explicar por qué)

    Hay detallitos sintácticos que puedes querer consultar con man find, como el significado de las {} o la diferencia entre especificar + o ;, que a veces no hace demasiada diferencia pero a veces la hace tremenda ;-)

    ResponderResponder

    usando Debian IceWeasel Debian IceWeasel 3.5.16 en Linux Linux desde
    julio 2, 2011 @ 21:09:
  4. Gunnar

    A propósito… El switch “-r” de grep no tiene ningún sentido como lo presentas!

    ResponderResponder

    usando Debian IceWeasel Debian IceWeasel 3.5.16 en Linux Linux desde
    julio 2, 2011 @ 21:10:
  5. Rafael Bucio

    @Gunnar, gracias, me gusto un poco más el grep -Hirn que puso @David, le estudiaré más al grep/find. gracias @Gaspar :D

    ResponderResponder

    usando Google Chrome Google Chrome 12.0.742.112 en Linux Linux desde
    julio 3, 2011 @ 17:43:
  6. Nephtalí Gómez A

    Me agradó mucho el artículo Bucio, especialmente cuando hay muchos archivos en dónde buscar y por supuesto, muchas cosas que encontrar.
    Por cierto, ¿cómo puedes clasificar archivos por formato?

    Saludos!

    Nephtalí Gómez

    ResponderResponder

    usando Epiphany Epiphany 2.30.6 en Debian GNU/Linux Debian GNU/Linux desde
    julio 29, 2011 @ 16:08:
  7. Last Dragon

    El grep por si solo puede hacer eso, no hacia falta meter el find

    ResponderResponder

    usando Mozilla Firefox Mozilla Firefox 4.0.1 en Linux Linux desde
    agosto 12, 2011 @ 17:48:
  8. fitorec

    Agregaria la opcion -a por aqueño de las coicidencia en los archivos binarios, y el -s por aqueño de los permisos y errores.


    grep -RHasni --color "title" .

    Un detelle que vi es que emplean el -r yo tipicamente empleo el -R,las dos formas funcionan aunque creo que esta es la opción mas recomendada pero no estoy seguro.

    Para mostrar solo los archivos con extensión html se me ocurre una tuberia:


    grep -RHasni "title" . | grep -Ei "^.*.html :[0-9]+:\s"

    Pero esto es nada eficiente ya que buscaria en todos los archivos y posteriormente haria el filtro, creo que si quieres excluir los archivos entonces se me ocurre algo como:


    find . -iregex ".*\.html$" | xargs grep -Hani --color 'title'

    L0L!, lo cual volvemos a practicamente lo mismo :¬P,jejeje, creo que cantinflie(despues de mucha jarada volvi al inicio), con el detalle que el match del find te es omiso al mayusculas/minusculas, y al ser una regex lo puedes extender si deseas definir algun patron mas expecifico en tus archivos p.e. otras extensiones.

    ResponderResponder


    usando Mozilla Firefox Mozilla Firefox 9.0.1 en Ubuntu Linux Ubuntu Linux desde
    enero 30, 2012 @ 3:48:

Deja tu opinión..

XHTML: Puedes usar : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Tsss: si no tienes gravatar lee esté post de Kozmica , para sacar uno :-).


Campus Party

Publicidad