elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  BASH mp32wav, wav2mp3 - p/linuxeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: BASH mp32wav, wav2mp3 - p/linuxeros  (Leído 2,500 veces)
D4RIO


Desconectado Desconectado

Mensajes: 1.004


U N I X


Ver Perfil WWW
BASH mp32wav, wav2mp3 - p/linuxeros
« en: 21 Diciembre 2008, 16:33 pm »

Hola amigos, hoy les dejo unos escrits ( :huh:) ... es decir scripts ( :xD) para el shell de Unix, especifya saben como icamente probados en bash. Usan ffmpeg para transformar archivos mp3 a wav y viceversa.

No es nada raro, pero es util y sirve para ver a bash en accion.

Tal vez la parte más interesante es cómo usar las expansiones de variables para crear los nombres nuevos, es decir, cambiar un holahola.wav a holahola.mp3... o tal vez a alguno le interese cómo es el tema de los colores en la consola, que ahi aparece.

Como sea, si tienen preguntas haganlas. Y no me vengan con comparar BASH con BATCH!!  >:(

Compartan ambos bajo GPLv2

Código
  1. #!/bin/bash
  2. ################################################################################
  3. # AUTOR: Dario A. Rodriguez                                                                                                                                                       #
  4. # Convierte los ficheros MP3 de un directorio a WAV usando ffmpeg                                                                                           #
  5. ################################################################################
  6.  
  7. if [ $# -eq 0 ]
  8. then
  9.  FILES=`ls --color=never ./*.mp3`;
  10. else
  11.  case $1 in
  12.    "-h")
  13.        echo "USAGE:"
  14.        echo "  mp32wav <file1.mp3> [<file2.mp3> <file3.mp3> ...]"
  15.        echo "      Transform all given files to WAV"
  16.        echo "  mp32wav -f <text_file>"
  17.        echo "      Transform all files listed in the given text file to WAV"
  18.        echo "  mp32wav"
  19.        echo "      Transform all the mp3 files in the directory to WAV"
  20.        echo "      this is case sensitive (only mp3, not MP3)"
  21.        exit 0
  22.    ;;
  23.    "-f")
  24.        FILES=`cat $2`
  25.    ;;
  26.    *)
  27.        FILES="$*"
  28.    ;;
  29.  esac
  30. fi
  31.  
  32. for fn in $FILES
  33. do
  34.  noextfn=${fn%.mp3}
  35.  newfn="${noextfn}.wav"
  36.  echo -e "\033[1m$fn\033[0m -------> \033[1m$newfn\033[0m"
  37.  ffmpeg -i $fn $newfn
  38. done
  39.  

Código
  1. #!/bin/bash
  2. ################################################################################
  3. # AUTOR: Dario A. Rodriguez                                                                                                                                                       #
  4. # Convierte los ficheros WAV de un directorio a MP3 usando ffmpeg                                                                                           #
  5. ################################################################################
  6.  
  7. if [ $# -eq 0 ]
  8. then
  9.  FILES=`ls --color=never ./*.mp3`;
  10. else
  11.  case $1 in
  12.    "-h")
  13.        echo "USAGE:"
  14.        echo "  wav2mp3 <file1.mp3> [<file2.mp3> <file3.mp3> ...]"
  15.        echo "      Transform all given files to MP3"
  16.        echo "  wav2mp3 -f <text_file>"
  17.        echo "      Transform all files listed in the given text file to MP3"
  18.        echo "  wav2mp3"
  19.        echo "      Transform all the mp3 files in the directory to MP3"
  20.        echo "      this is case sensitive (only wav, not WAV)"
  21.        exit 0
  22.    ;;
  23.    "-f")
  24.        FILES=`cat $2`
  25.    ;;
  26.    *)
  27.        FILES="$*"
  28.    ;;
  29.  esac
  30. fi
  31.  
  32. for fn in $FILES
  33. do
  34.  noextfn=${fn%.wav}
  35.  newfn="${noextfn}.mp3"
  36.  echo -e "\033[1m$fn\033[0m -------> \033[1m$newfn\033[0m"
  37.  ffmpeg -i $fn $newfn
  38. done
  39.  


En línea

OpenBSDFreeBSD
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: BASH mp32wav, wav2mp3 - p/linuxeros
« Respuesta #1 en: 22 Diciembre 2008, 00:49 am »

Hola D4RIO, ya lo probe, funciona perfecto.

A mi lo que me llamo la atencion fue el uso de
Código:
  ;;
Código:
*)

Hago bastante seguido Scripts en Batch para automatizar mi sistema, pero en Bash soy totalmente nuevo.



Y no me vengan con comparar BASH con BATCH!!  >:(


Tranquilo, ya me habias dejado claro la superioridad de Bash.
http://foro.elhacker.net/foro_libre/test_linux_o_windows-t230958.60.html


« Última modificación: 22 Diciembre 2008, 00:54 am por Leo Gutierrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
D4RIO


Desconectado Desconectado

Mensajes: 1.004


U N I X


Ver Perfil WWW
Re: BASH mp32wav, wav2mp3 - p/linuxeros
« Respuesta #2 en: 22 Diciembre 2008, 17:22 pm »

jaja... lo que pasa es que todos preguntan, y despues dicen "Ah!, bash es el Batch de Linux??" , y noooo.... Bueno, te explico, cada caso en bash se finaliza con ";;" y el "*)" es el caso defult.

case <variable> in
    caso1)
        <sentencias>
    ;;
    caso2)
        <sentencias>
    ;;
            .
            .
            .

    *)
        <sentencias>
    ;;
esac

En línea

OpenBSDFreeBSD
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines