Google Custom Search

Logo de Google Custom Search

Hacía tiempo que quería incluir una herramienta de búsqueda en mi sitio web y ayer dando una paseo por la red encontré algo que se adapta perfectamente a mis necesidades. Para no variar, se trata de una herramienta de Google, que cada vez que hace algo lo suele hacer bien. El nombre de la herramienta es Google Custom Search, que es una herramienta vieja de Google pero que se ha actualizado en la última semana y de la que ya había hablado indirectamente en el blog con el buscador de torrents.

La herramienta en sí es muy sencilla, permite realizar búsquedas personalizadas en el/los sitio(s) que le indiques, pero además te permite incluir adsense en las búsquedas (con lo que se puede hacer dinero), se puede modificar el aspecto y posición tanto de la caja de búsqueda como de la de los resultados. Lo mejor de todo es que utiliza la tecnología Google y en concreto Google AJAX Search API, con lo que es muy rápido, las búsquedas son precisas y da un aspecto “resultón” a la página.

Además de esto, existe una versión para empresas de la herramienta, que permite extender un poco la funcionalidad, pero que por contra es de pago.

Lo más importante de esta herramienta es que cada uno puede tener su propio motor de búsqueda personalizado, incluirlo en su sitio web y no tener que preocuparse de crear un propio.

Para todo el que tenga algún interés, puede visitar mi página web o el sitio de Google de mi motor de búsqueda.

La apariencia del buscador por defecto es algo como:

Google Custom Search Engine

Búsqueda de patrones en ficheros Linux

En muchas ocasiones queremos realizar una búsqueda en el contenido de un directorio pero no sabemos exactamente en que fichero se encuentra o posiblemente sólo conozcamos parte del texto de búsqueda.
Para todos estos problemas y para muchos más hay un comando en linux (en realidad para todo hay un comando en linux) que se llama grep. Su sintaxis es:

$ grep [opciones] patrón fichero

Como se puede ver la sintaxis básica es muy sencilla y en general sirve para buscar una cadena en un fichero, pero en realidad este comando es mucho más potente puesto que permite:

  • Búsqueda en múltiples ficheros.
  • Búsqueda recursiva.
  • Búsqueda haciendo uso de expresiones regulares (tanto en formato POSIX como en formato Perl)

Y en realidad muchas más opciones, que tienen que ver con como se muestran los datos o comportamientos concretos en determinadas situaciones, para más información siempre se puede mirar la página del manual del comando (man grep).

En la salida básica, muestra el valor encontrado (por si se ha puesto una expresión regular), pero en caso de poner multiples fichero se indica el fichero en que se encuentra, se puede establecer que se muestre la linea en la que se encuentra (con la opción -n) y muchas más opciones útiles. Vamos a mostrar algunos ejemplos de su uso:

$ grep Hola fichero1

Donde se realizar una búsqueda simple de la cadena Hola en el fichero de nombre fichero1.

$ grep -n Hola fichero1

Donde se realizar una búsqueda simple de la cadena Hola en el fichero de nombre fichero1, indicando el la linea en la que se encuentra.

$ grep -n Hola fichero1 fichero2 … ficheroN

Donde se realizar una búsqueda simple de la cadena Hola en los ficheros fichero1, fichero2 hasta ficheroN. También mostrará el número de linea junto con el nombre del fichero en la que lo encuentra.

$ grep -rn Hola fichero1 .

Donde se realizar una búsqueda recursiva de la cadena Hola A partir del directorio actual, mostrando información del fichero y la linea en la que lo encuentra.

$ grep -rn ‘C.la’ .

Donde se realizar una búsqueda recursiva de la expresión regular ‘H.la’ a partir del directorio actual, mostrando información del fichero y la linea encontrada. El patrón debería concordar con palabras como: Hola, Hala, Hela,…

Una de las mayores utilidades de este comando es realizar una búsqueda de un determinado patrón para saber donde se encuentra y realizar un reemplazo por otro, lo que se podría realizar con un editor, pero de esta forma se puede realizar más rápido, puesto que no haría falta buscar en que fichero se encuentran, abrirlos e ir reemplazando en cada uno, si no que se podría realizar un reemplazo sobre todos los ficheros que nos devuelva el comando grep. El comando de reemplazo lo explicaré en otro post, ya que es muy interesante y se merece mención aparte.