Sistemas

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 el mes de julio del 2008

Historias relacionadas

Volver al inicio