Article View: es.comp.os.linux.programacion
Article #1234Re: Ayuda con Bash Script. Tratamiento de nombres de ficheros.
From: Manolo
Date: Wed, 01 Mar 2006 00:44
Date: Wed, 01 Mar 2006 00:44
75 lines
3410 bytes
3410 bytes
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hola. El Tue, 28 Feb 2006 08:50:49 +0000 (UTC), J.A. Gutierrez... => NOM=`echo *0$cont*.wma|rev|cut -c 5-|rev` => para ello (ademas, "rev", no es portable). => NOM=`basename *0$cont*.wma .wma` Vale. Gracias por esta informacion. Pero reconoce que mi juego con 'rev' y 'cut' te ha gustado :-D => : y que acepte los espacios? => comillas dobles Conio... parece que las comillas eran la respuesta :-) => : cont=1 => : echo "Numero de Canciones" => : read canciones => esto lo puedes hacer tu => canciones=`ls -1 *wma | wc -l` �Bien! Esto sabia que se podia hacer de otro modo pero no me habia puesto a investigar. => a mplayer le puedes decir directamente el nombre del => fichero de salida => mplayer -ao pcm -aofile "$NOM".wav "$NOM".wma => La verdad es que no entiendo muy bien la razon de ser de => los bucles que haces, pero a ojo, yo diria que tu script se Los dos bucles anidados son para tratar de distinto modo a los ficheros con numero <10 y >=10. Normalmente las canciones van numeradas de forma que los numeros <10 llevan el cero delante tal que: 'cancion01.wma' Entonces no sabia bien como decir que se procese la cancion 01 indicando que el cero esta ahi. '01, 02,..., 09, 10...' y no '1, 2, 3...' Pues un bucle para <10 y otro para >=10 (supongo que tiene que haber forma mas racional de hacerlo). Pero se me acaba de ocurrir que a�adiendo una variable que introduzca o no el cero se podria hacer. Script reescrito a�adiendo actualizaciones: - ----------------------------8<------------------------- canciones=`ls -1 *wma | wc -l` cero=0 cont=1 while [ $cont -le $canciones ] do if [ $cont -gt 9 ] then cero="" fi NOM=`basename *$cero$cont*.wma .wma` mplayer -ao pcm:file="$NOM".wav "$NOM".wma cont=`expr $cont + 1` done - --------------------------------------8<--------------- => ls -1 *wma|sed 's/\(.*\)\.wma/mplayer -ao pcm -aofile \"\1.wav\" \"\1.wma\"/'|sh �uffffff! Creo que tengo que hacer un 'man sed' :-) Un saludo. Gracias a todos. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) iD8DBQFEBO34HrWmJqF2ShcRAqL2AJ9CDHPG7r0OuBrLDaqAcdAZ1JPjRwCdGufc OOIf4ktxWvk6nh47RHA88cA= =40XX -----END PGP SIGNATURE-----
Technical Details
Message-ID:
<F76Nf.170679$US.116117@news.ono.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!80.239.144.83.MISMATCH!newspeer1.de.telia.net!newspeer4.de.telia.net!de.telia.net!newsf01.ono.com!news.ono.com.POSTED!53ab2750!not-for-mailReferences:
<t5OMf.170600$US.147751@news.ono.com> <du12t9$ln0$1@appleseed.escomposlinux.org>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,917cffdfe5a49207 X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!80.239.144.83.MISMATCH!newspeer1.de.telia.net!newspeer4.de.telia.net!de.telia.net!newsf01.ono.com!news.ono.com.POSTED!53ab2750!not-for-mail Newsgroups: es.comp.os.linux.programacion From: Manolo <manolo@elektra.org> Subject: Re: Ayuda con Bash Script. Tratamiento de nombres de ficheros. References: <t5OMf.170600$US.147751@news.ono.com> <du12t9$ln0$1@appleseed.escomposlinux.org> Organization: La Organizacion Enemiga Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit User-Agent: slrn/0.9.8.1pl1 (Debian) Lines: 75 Message-ID: <F76Nf.170679$US.116117@news.ono.com> Date: Wed, 01 Mar 2006 00:44:21 GMT NNTP-Posting-Host: 81.202.154.232 X-Trace: news.ono.com 1141173861 81.202.154.232 (Wed, 01 Mar 2006 01:44:21 MET) NNTP-Posting-Date: Wed, 01 Mar 2006 01:44:21 MET