Newsgroup: it.comp.os.linux.iniziare
Titolo: script per ape

ok, il mac va bene per la conversione, solo che è noioso dare per ogni 
file il comando mac "nome.ape" "nome.wav" -d;
mi servirebbe uno scriptino che lo faccia in automatico, solo che le mie 
(lontane) esperienze si fermano al Turbo Pascal;
se qlc l'ha già fatto me lo passerebbe?
altrimenti pazienza, vedrò di studiarmi un po' lo C -o conviene che lo 
faccia in Pascal e poi lo converta?
r
-- 
radio e una voce canta: viaggiando, viaggiando sull'autostrada, apro la
[Ring-Mantra ritrovato in Autobahn dei Kraftwerk]
Ramapage: 
http://umpf.net/

 faccia in Pascal e poi lo converta?
C, Pascal?
No grazie, meglio usare la shell.
Bash programming howto
(Non si usano le atomiche per distruggere un castello di sabbia)

 mi servirebbe uno scriptino che lo faccia in automatico
senza sapere esattamente che vuoi fare...
se vuoi aprire un .ape, probabilmente va bene una cosa del genere
#!/bin/sh
# in $1 c' e' il file .ape
# assegno alla variabile file_wav il file .wav
file_wav="$(basename "$1" ".ape").wav"
# decomprime l' ape
mac "$1" "$file_wav" -d
# esegue il .wav
play "$file_wav" # al posto di play metti il tuo player preferito!
# cancella il .wav
rm -f "$file_wav" # ovviamente cancella questa parte se non ti interessa!
metti il tutto (#!bin/sh incluso) in un file (chesso', leggi_ape.sh),
dagli i diritti di esecuzione e poi
$ leggi_ape.sh "file.ape"
-- 
§         ZeD          §
§    Up da 1:30 ore    §
§      28/02/2004      §
§ S. Osvaldo-S. Romano §

 No grazie, meglio usare la shell.
in effetti, solo che c'è un intoppo;
l'ho impostato in due passate: nella prima rinomina i files ape in 
1.ape, 2.ape, ... poi li trasforma in wav;
il problema è che la prima passata si blocca se nel nome del file trova 
degli spazi:
#!/bin/bash
COUNTER=0
for i in $(ls)
do
let COUNTER=COUNTER+1
mv $i $COUNTER.ape
done
come rimediare?
se prima del done metto
mac $i $COUNTER.wav -d
posso fare tutto in una sola passata o si crea confusione (vabbe', basta 
provare)?
r
-- 
----x----
---- ----
---- ----
                Camminare sulla brina.
---- ----
---- ----
---- ----
tutto sui Pentangle: 
http://umpf.net/

 # in $1 c' e' il file .ape
è qui che mi perdo, tutto bene se il nome del file non contiene spazi, 
ma se li contiene mi da errore;


 degli spazi:
cerca su googlegrouops IFS!
-- 
§         ZeD          §
§   Up da 15 minuti    §
§      28/02/2004      §
§ S. Osvaldo-S. Romano §

 ma se li contiene mi da errore;
# script.sh "file con spazi.ape"
(nota i doppi apici)
-- 
§         ZeD          §
§   Up da 17 minuti    §
§      28/02/2004      §
§ S. Osvaldo-S. Romano §

 cerca su googlegrouops IFS!
ho cercato, ho cercato;
ho provato con mmv, mrename ecc... c'è qlc in Perl (ereg_replace) ma 
dato che ho scartato l'uso di C e Pascal...
r
-- 
i quattro uomini meno poveri del mondo hanno un reddito equivalente
a quello dei seicento milioni meno ricchi
[rapporto ONU 1999]


 (nota i doppi apici)
non ti seguo;
r
-- 
sta emergendo la veritŕ su Mani Pulite:
era un complotto di magistrati onesti
Ramapage: 
http://umpf.net/

 non ti seguo; 
credo di aver trovato, bisogna pasticciare con sed, credo, mo' esco e al 
rientro vedrò di farlo a mente sgombra;
r
-- 
sta emergendo la verità su Mani Pulite:


 come rimediare?
Prova cosě:
#!/bin/bash
COUNTER=0
OLDIFS=$IFS
IFS="
"
for i in $(ls)
do
let COUNTER=COUNTER+1
mv $i $COUNTER.ape
done
IFS=$OLDIFS
Se funziona e vuoi maggiori dettagli guarda IFS in man bash.
Ciao, Paolo

 Prova cosě:
avevo fatto:
#!/bin/bash
export IFS=""
for i in `ls`
do
mv $i `echo $i|sed -e"s/ //g"|sed -e"s/$/.txt/g"`
done
  COUNTER=0
  for i in *
  do
  let COUNTER=COUNTER+1
  mv $i $COUNTER.ape
  done
  COUNTER=0
  for i in *
  do
  let COUNTER=COUNTER+1
  mac $i $COUNTER.wav -d
  done
che sembrava funzionare, nella cartella di prova con tre files, ma 
s'impasticciava quando si trattava di fare sul serio: i wav creati non 
avevano la numerazione degli ape;
allora ho seguito il tuo script aggiungendo la riga per la decompressione:
#!/bin/bash
COUNTER=0
OLDIFS=$IFS
IFS="
"
for i in $(ls)
do
let COUNTER=COUNTER+1
mv $i $COUNTER.ape
mac $COUNTER.ape $COUNTER.wav -d
done
IFS=$OLDIFS
sembra che vada, per sicurezza passerň a XP per ascoltare in parallelo 
ape e wav;
certo che il Pascal era piů chiaro, perň;
tnx,
r
-- 
and if I were the good man
I'd talk with you more often than I do
[Roger Waters: If]
Ramapage: 
http://umpf.net/

volevo ben dire che ci doveva essere una soluzione elegante, tutto sta 
ad avere il programmino chcase, di pochi bit:
#!/bin/bash
chcase -x 's/ /_/g' '*'
for i in $(ls)
do
mac $i $i.wav -d
done
oppure, se si vuole che il file invece di nome.ape.wav diventi nome.wav:
#!/bin/bash
chcase -x 's/ /_/g' '*'
for i in $(ls)
do
a=$(basename "$i" ".ape")
mac $i $a.wav -d
done
r
-- 
tagliacutteggiate, prego
[firma 1.0 freeware auto-random mode]
Baudelaire e l'arte: 
http://umpf.net/