[hack] Bash scripting e conversione formati musicali

Marco Masetti marco.masetti@softeco.it
Mar 4 Set 2007 11:15:03 CEST


Hal wrote:
> Ciao,
>
> Vorrei ascoltare offline una trasmissione radio disponibile solo come
> streaming in formato realaudio.
>
> http://www.bbc.co.uk/radio/aod/shows/rpms/radio4/six_pm_news.ram
>
> Inoltre la vorrei ascoltare in formato Ogg-Vorbis.
>
>
> Ho trovato uno script molto interessante
> http://www.esfnet.co.uk/index.php?page=Listen_Again
>
> per l'esattezza
> http://www.esfnet.co.uk/listenagain.sh
>
>
> appena lo lancio mi dą un errore mentre tenta di estrarre il nome del
> file dal url
>
> hal@box:~$ listenagain.sh
> http://www.bbc.co.uk/radio/aod/shows/rpms/radio4/six_pm_news.ram
> radio location is malformed (check your command argument)
> job@box:~$
>
>
> Credo che il colpevole sia questo ciclo if/else
>
> # Get ram file from the end of $1: the bit between the last '/' and
> ".ram"...
> if [[ $1 =~ 'http://(.*)/([^/]*)\.ram' ]]; then
>   outfile=${BASH_REMATCH[2]}
> else
>   echo "radio location is malformed (check your command argument)"
>   exit
> fi
>
>
> Ci capite qualcosa?   Io no...   :-(
>   
La regex mi sembra corretta; ho provato ad eseguire solo lo snippet 
sotto bash e mi definisce correttamente outfile come 'six_pm_news'.

Anche sotto perl funziona correttamente
Il mio interprete di regex perl dice:

The regular expression:

(?-imsx:http://(.*)/([^/]*)\.ram)

matches as follows:

NODE                     EXPLANATION
----------------------------------------------------------------------
(?-imsx:                 group, but do not capture (case-sensitive)
                         (with ^ and $ matching normally) (with . not
                         matching \n) (matching whitespace and #
                         normally):
----------------------------------------------------------------------
  http://                  'http://'
----------------------------------------------------------------------
  (                        group and capture to \1:
----------------------------------------------------------------------
    .*                       any character except \n (0 or more times
                             (matching the most amount possible))
----------------------------------------------------------------------
  )                        end of \1
----------------------------------------------------------------------
  /                        '/'
----------------------------------------------------------------------
  (                        group and capture to \2:
----------------------------------------------------------------------
    [^/]*                    any character except: '/' (0 or more
                             times (matching the most amount
                             possible))
----------------------------------------------------------------------
  )                        end of \2
----------------------------------------------------------------------
  \.                       '.'
----------------------------------------------------------------------
  ram                      'ram'
----------------------------------------------------------------------
)                        end of grouping
----------------------------------------------------------------------

che e' quello che si vuole. Guardo meglio lo script intero e faccio 
altre prove.

Ciao,
Marco.
>
> Grazie a chi saprą aiutarmi
> Alberto
> _______________________________________________
> hack mailing list
> hack@firenze.linux.it
> https://lists.firenze.linux.it/mailman/listinfo/hack
>
>
>   


-- 
--------------------------------------------------------------------
Ing. Marco Masetti
Project Manager - Research & Innovation
Softeco Sismat S.P.A.		
Via De Marini, 1 - WTC Tower
Tel: (+39) 010 6026.333		    http://www.softeco.it
Fax: (+39) 010 6026.350		    mailto://marco.masetti@softeco.it
---------------------------------------------------------------------





Maggiori informazioni sulla lista golem-hack