Olá Miranda,
Muito obrigado pela sua ajuda.
Eu criei um nao tao elegante quando o seu:
#!/bin/bash
DIR="/opt/shoutcast/bin/wma/"
find "${DIR}" -iname "*.wma" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k
-ac 2 -ar 44100 {}.mp3 \;
find "${DIR}" -iname ".*" -prune -o -exec rename 's/\.wma.mp3$
fazer um script a parte com o comando de conversão :
ffmpeg -i $1 -acodec ... ${1%.wma}.mp3
( digamos que o nome seja converte.sh e esteja no seu PATH)
então
find /opt/shoutcast/bin/ -iname "*.wma" -exec converte.sh {} \;
On Thu, 2009-10-15 at 16:43 -0300, George Robinson wrote:
>
> consegui fa
consegui fazer com o seguinte script:
#!/bin/bash
find /opt/shoutcast/bin/ -iname "*.wma" -exec ffmpeg -i {} -acodec
libmp3lame -ab 128k -ac 2 -ar 44100 {}.mp3 \;
porém ele converte como "arquivo.wma.mp3"
alguem poderia dar uma sugestao??
Att,
2009/10/15 George Robinson
> oi thiago, na ve
oi thiago, na verdade, foi so erro de digitaçao... tanto que ele executa o
script... apenas nao consegue realizar a tarefa...
vou testar as sua sugestao...
Att,
2009/10/15 Thiago Diniz da Silveira
>
>
> Dando uma olhada rápida está faltando uma " (aspas) no FILE=`find
> "${DIR}...`
>
> Para pe
Dando uma olhada rápida está faltando uma " (aspas) no FILE=`find
"${DIR}...`
Para pegar cada entrada no arquivo TXT você pode usar um for assim:
for var in $(cat arquivo.txt); do
echo $var;
done
2009/10/15 George Robinson
>
>
> Mais uma vez estou recorrendo à lista após quebrar a cabeça co
Mais uma vez estou recorrendo à lista após quebrar a cabeça com um script
que nao dá certo.
Eu tenho o seguinte script:
DIR="/opt/shoutcast/bin"
FILE=`find "${DIR} -iname "*.wma"
CONVERT=`ffmpeg -i "$FILE" -acodec libmp3lame -ab 128k -ac 2 -ar 44100
"${FILE%.wma}.mp3"`
find "${DIR}" -iname "${FI
--- Em shell-script@yahoogrupos.com.br, George Robinson
escreveu
>
> É possivel alterar o case de um arquivo ou de varios arquivos??
>
> ex: ARQUIVO 1 -> arquivo 1 / Arquivo 2 --> arquivo 2
>
Meus dois centavos, tudo em uma linha ou, como diz o Júlio, em um 'one liner':
for NOME in * ; do NOV
Ops! Um pequeno erro que poderia ser fatal... (faltou o $ em `echo
old_name...`)
for old_name in `find ...` ; do
new_name=`echo $old_name | tr [:upper:] [:lower:]`
if [ "$new_name" != "$old_name" ] ; then
mv -v "$old_name" "$new_name"
fi
done
(A versão original iria mover todos os arqu
Aloha Osvaldo,
O dash é um binário menor que o bash, usa menos RAM e é bem mais rápido.
Como exemplo, um script meu de 28 linhas quando rodado em bash conclui suas
operações em 73 segundos. Já em dash, conclui em 44 segundos.
Como o bash apresenta dialetos, sintaxes de scripts que só ele entende,
for old_name in `find ...` ; do
new_name=`echo old_name | tr [:upper:] [:lower:]`
if [ "$new_name" != "$old_name" ] ; then
mv -v "$old_name" "$new_name"
fi
done
Nota: as aspas garantem o sucesso mesmo em arquivos com espaços.
--- Em shell-script@yahoogrupos.com.br, George Robinson
esc
Muito bom!
Não conhecia mesmo!
Vou pesquisar um pouco mais...
Na verdade, sou iniciante em Shell Script.
Comprei o livro do Aurelio, mas não estou tendo muito tempo de me
aprofundar!
Mesmo assim, sempre que posso to por aqui!
Obrigado pela dica!
2009/10/15 Kurt Kraut
>
>
> Aloha Osvaldo,
>
> O d
for old_name in `find ...` ; do
new_name=`echo old_name | tr [:upper:] [:lower:]`
mv -v "$old_name" "$new_name"
done
Nota: as aspas garantem o sucesso mesmo em arquivos com espaços.
> -Original Message-
> From: George Robinson
>
> É possivel alterar o case de um arquivo ou de varios
Isso é verdade.
Mas meu objetivo foi dá apenas um norte.
Esses tratamentos mais "avançados"... temos que sentar um pouco para pensar.
2009/10/15 Waldirio Manhães Pinheiro
>
>
> Boa
>
> Só um detalhe Kurt e Osvaldo, para arquivos com espaco no nome nao
> funciona,
> pois o shell reconhece como m
Boa
Só um detalhe Kurt e Osvaldo, para arquivos com espaco no nome nao funciona,
pois o shell reconhece como mais de um arquivo.
Altere a linha referente ao mv somente, incluindo o ""
#!/bin/dash
temporario=$(mktemp)
ls --ignore-backups --width=1 > $temporario
while read nome_antigo
do
nome_novo
Como falei era apenas uma ideia inicial.
As ideias subsequentes sao mais completas.
Gostaria de saber do Kurt Kraut a diferença entre o dash e o bash?
Nunca tinha ouvido falar sobre dash.
Para você mudar o nome do arquivo, independente de ser maisculo ou
minusculo, vc terá que realizar um teste:
i
Aloha,
Veja se minha abordagem te agrada:
#!/bin/dash
temporario=$(mktemp)
ls --ignore-backups --width=1 > $temporario
while read nome_antigo
do
nome_novo=$(echo $nome_antigo | tr [:upper:] [:lower:])
mv --interactive --verbose $nome_antigo $nome_novo
done < $temporario
echo "Operação concluída.
Ok Osvaldo,
Neste caso, ele vai alterar o case em todo o nome ou ele pode inverter
maiusculo por minusculo tbm?
Att,
2009/10/15 Osvaldo Filho
>
>
> Vc deve utilizar o comando "tr".
>
> Por exemplo,
>
> Vc pode criar uma especie de lista com todos os arquivos e varrer essa
> lista
> alterando o
Amigo
Para arquivos sem espaço funciona normalmente, para arquivos com espaço,
depois vejo com mais calma ;)
jeju:[xxx] > ls
ARQUIVO1 Arquivo2
jeju:[xxx] > for b in $(ls -1); do echo mv $b $(echo $b | tr '[A-Z]'
'[a-z]'); done
mv ARQUIVO1 arquivo1
mv Arquivo2 arquivo2
jeju:[xxx] > for b in $(l
Vc deve utilizar o comando "tr".
Por exemplo,
Vc pode criar uma especie de lista com todos os arquivos e varrer essa lista
alterando o case.
tipo:
for $arquivo in lista
do
tr A-Z a-z
done.
Apenas um esboço!
2009/10/15 George Robinson
>
>
> É possivel alterar o case de um arquivo ou d
É possivel alterar o case de um arquivo ou de varios arquivos??
ex: ARQUIVO 1 -> arquivo 1 / Arquivo 2 --> arquivo 2
Obrigado
Att,
--
George Robinson
Analista de Suporte
Tel: (21) 8843-7251 / (21) 8140-2351
[As partes desta mensagem que não continham texto foram removidas]
20 matches
Mail list logo