I ♥ Spotlight… y BibDesk. Y más en Leopard, por Juan de Dios Santander
Estoy enamorado de Spotlight. I ♥ Spotlight!. Con diferencia, Spotlight es la tecnología incorporada en Tiger y disponible en Leopard que más echo de menos cuando me encuentro con cualquier otro ordenador. Y me fascina el hecho de que las aplicaciones crean plugins para poder buscar en su contenido.
En mi caso, llevo manejando toda la bibliografía de la tesis con BibDesk, el mejor programa gratuito que exista en plataforma alguna. (Papers es una alternativa genial de pago, pero aparte de no ser gratuita intenta parecerse demasiado a iTunes; además, me gustan las soluciones modulares, y prefiero la combinación BibDesk + Vista Previa + Skim.)
Como BibDesk crea índices Spotlight para todos tus artículos, puedes buscarlos desde cualquier parte (incluso un cuadro de diálogo de Abrir archivo)... y comprobar si tienes algún PDF para el cual aún no creaste una entrada.
Pero lo que ya me sulibeya (si reconoces la palabra, sé los años que ya no cumples ;-)) es que Spotlight no está limitado a buscar términos que aparezcan en cualquier parte de un documento, sino que puedes usar el Finder para construir consultas complejas, como todos los documentos BibDesk que tengan un determinado autor y palabra clave… y en Leopard se añade la posiblidad de construir grupos lógicos, esto es, los artículos de tal y tal palabra clave, o bien los de tal autor, todos juntos.
Claro que para conseguir la máxima potencia a veces necesitas la línea de comandos, y para eso existen los comandos mdls (para listar los metadatos de uno o varios archivos), y mdfind, para encontrar los archivos que contienen todas las palabras que vayan a continuación, o bien, si usamos los códigos que se pueden obtener con mdls, podemos usar paréntesis para agrupar cláusulas, y los operadores && para el Y lógico, y || para el O lógico. Y podemos leer el contenido de los archivos .savedSearch para averiguar cómo escribir clásulas complejas.
Pero si queremos hacer una búsqueda simple, como aquellos archivos que tengan un determinado autor y una fecha anterior a una dada, y queremos hacerlo desde la línea de comandos, hay dos problemas: recordar los códigos ( kMDItemAuthors, net_sourceforge_bibdesk_publicationdate), y convertir la fecha al formato de segundos desde el 01/01/1904. También se pueden Sin embargo, en Leopard hay otra alternativa, gracias a la opción interprete.
Con esa opción, podemos escribir (en inglés), el mismo tipo de consulta que habríamos hecho en el menú Spotlight. Por ejemplo, los artículos BibDesk que contengan Ochsenbein y que consulté ayer mismo los podríamos haber buscado como Ochsenbein clase:BibDesk fecha:ayer. Si lo hubiese querido buscar con mdfind, habría tenido que escribir:
mdfind ‘(kMDItemKind = “BibDesk*”) && (kMDItemLastUsedDate >= $time.today(-1)) && (( * = “*Ochsenbein*”) || (kMDItemTextContent = “*Ochsenbein*”))’
Pero en Leopard, podríamos escribir:
mdfind -interpret Ochsenbein kind:BibDesk date:yesterday
Nótese que lo que sigue a -interpret es lo que habríamos escrito en el menú Spotlight… si el idioma de nuestro Mac OS X fuese inglés. Aún así, es muchísimo más fácil de recordar que las claves que hemos podido ver ;-)
ps. Las funciones como $time.today(-1) y similares están documentadas en la página Spotlight Query Programming Guide > Query Expression Syntax. En concreto, una fecha textual se escribe como $time.iso (“yyyymmddThhmmss”), donde yyyy son las cuatro cifras del año, mm las dos cifras (comenzando por 0) del mes, dd las dos cifras del día. La parte que sigue a T (incluida) es optativa, pero si aparece, hh corresponden a la hora en formato de 24h, mm a los minutos, y ss a los segundos. Por ejemplo, la fecha y hora de la celebración de mi cumpleaños este año fue $time.iso(“20080523T213000”), pero si queremos sólo la fecha se puede escribir como $time.iso(“20080523”).
pps. Existe otra opción de mdfind, literal, que se usa si queremos buscar documentos que contengan alguna de las palabras clave de Spotlight, como kMDItemLastUsedDate, y no queremos que se interprete como una restricción al contenido de ese campo, sino que aparezca es cadena concreta. Así, después de haber leido esta página la búsqueda:
mdfind -literal kMDItemLastUsedDate
debe encontrar un archivo .webhistory con esta página, entre otras cosas.
Un artículo de Juan de Dios Santander en Memoria de Acceso Aleastorio
Noticia Siguiente: GreenPeace disecciona el iPhone 2G (vídeo)
Los comentarios que vulneren los derechos de otros usuarios, estén relacionados con actividades ilegales , supongan un claro ejemplo de interés comercial o sean ajenos al contenido de la noticia serán borrados sin aviso previo. Una buena ortografía y sintaxis ayudará a otros usuarios a entender mucho mejor sus inquietudes. Una vez enviado el comentario, se hará visible en unos minutos. Si cree que alguno de los comentarios publicados vulnera sus derechos, por favor, envíenos unas líneas a través de nuestro formulario de contacto. Al colocar un comentario en esta web, acepta que sus datos queden recogidos en una base de datos propiedad de Entremaqueros, SL., ubicada en EE.UU., cuya finalidad es el exclusivo almacenamiento de los mismos.





















Enviar un comentario nuevo