@Bucio: A tapachula.... (@ Terminal OCC/ADO - @tuado) http://t.co/ibszmIKcln

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:				'a class="lightbox-image" rel="prettyPhoto[2]" href="{{image}}" title="{{title}}"' +
./index.html:					'img src="{{image_s}}" alt="{{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

 
 
 

9 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


    julio 2, 2011 @ 20:12:
  2. Gaspar Fernández

    Yo siempre utilizo egrep:

    egrep -R ‘loquequierobuscar’ *.html por ejemplo

    ResponderResponder


    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


    julio 2, 2011 @ 21:09:
  4. Gunnar

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

    ResponderResponder


    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


    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


    julio 29, 2011 @ 16:08:
  7. Last Dragon

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

    ResponderResponder


    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



    enero 30, 2012 @ 3:48:
  9. Malware en el servidor Web | El Blog de Rafael Bucio

    [...] Sí se tiene acceso por ssh y eres fanático de la terminal puedes tratar con estos comandos para encontrar los archivos infectados ver post. [...]



    abril 18, 2012 @ 8:55:

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