Consolas de texto: buscar una canción y reproducirla
Existen un sinfín de programas gráficos para realizar tareas de este estilo, pero ya que estamos tocando el tema de las consolas de texto en GNU/Linux y su enorme potencial veamos cómo se haría esto en un entorno de comandos por texto.
Mediante un comando textual, un usuario le dice al sistema qué es lo que la computadora debe hacer… por ejemplo, el comando "play" reproduce archivos de audio, los comandos "locate" o "find" buscan archivos, el comando "grep" filtra palabras, y el comando "xargs" hace lo siguiente: dada una lista ejecuta cualquier comando sobre la misma… por ejemplo, si le damos un listado de archivos de audio podría reproducirlos, borrarlos, convertirlos a otros formato (wav a mp3, mp3 a wav, etc.)
Entonces, podríamos buscar alguna canción con locate, filtrar la lista obtenida con grep, reproducirla con play. Supongamos que buscamos una canción llamada "Miles de Lagos", escribiríamos esto:
locate -i miles
La opción -i sirve para ignorar el hecho de que los resultados estén en mayúsculas o minúscula. Ese comando en mi sistema produce una salida demasiado grande, con 637 resultados. Por lo cual filtraré solamente los archivos que sean mp3
locate -i miles | grep mp3
Bien, he obtenido sólo 22 resultados. Pero entre ellos hay cosas que no tienen nada que ver con lo que busco, como por ejemplo /usr/share/doc/checkmp3/MILESTONE.
Aquí podría tomar varios caminos, en verdad ya he encontrado la canción que busco, se encuentra aquí: /mnt/hda1/marcos/audio/miles/Miles_de_lagos_MF7_master1.wav.mp3
, pero yo quiero utilizar este ejemplo para demostrar cómo filtraría hasta las últimas consecuencias una lista que devuelve esto:
/mnt/hda1/marcos/audio/miles/Miles_de_lagos_MF7_master1.wav.mp3
/mnt/hda1/marcos/audio/miles/Miles_de_lagos_MF7_master2_jamin.wav.mp3
/mnt/hda1/marcos/audio/miles/Miles_de_lagos_MF7_master3_jamin.wav.mp3
/mnt/hda1/marcos/audio/miles/Miles_de_lagos_MF8_master.mp3
/mnt/hda1/marcos/audio/miles/Miles_de_lagos_MF9_master-no-agresivo.wav.mp3
/mnt/hda1/marcos/audio/miles/Miles_de_lagos_MF9_no-agresivo.wav.mp3
/mnt/hda1/marcos/audio/miles/Miles_MF1.mp3
Lo único que diferencia a la versión que buscaba, es la palabra master1, por lo cual agregaré ese filtro
locate Miles | grep mp3 | grep master1
Ahora sólo aparece
/mnt/hda1/marcos/audio/miles/Miles_de_lagos_MF7_master1.wav.mp3
Ahora sólo resta reproducirla
locate Miles | grep mp3 | grep master1 | xargs play
NOTA: tener en cuenta que podemos repetir el comando anterior presionando la flecha del teclado que indica dirección hacia arriba, por lo cual es sencillo agregar más filtros y comandos.
Si quisiera abrir esa canción con un programa al estilo Winamp:
locate Miles | grep mp3 | grep master1 | xargs xmms
Si quisiera abrir esa canción con un editor de audio llamado Audacity:
locate Miles | grep mp3 | grep master1 | xargs audacity
Por Marcos Guglielmetti, el 09/07/2008.