Autor Tópico: como lidar com espaços em nomes de arquivos  (Lida 1920 vezes)

Offline olinto

  • Usuário Ubuntu
  • *
  • Mensagens: 139
    • Ver perfil
como lidar com espaços em nomes de arquivos
« Online: 29 de Julho de 2010, 23:23 »
Olá

Estou adaptando um script para diminuir os tamanhos de arquivos mp3 para ouvir em players portáteis. Neles não necessito de 320, 256, etc.

No entanto os scripts que encontrei não suportam espaços nos nomes de arquivos, p.ex., de http://www.vivaolinux.com.br/script/Reduzir-mp3-para-celular

...
for i in `ls -1 *.mp3`; do
  lame -b 128 --mp3input $i ${i%.mp3}-128.mp3
done

Se houverem espaços é dado o erro de excesso de parâmetros.

Há alguma forma de contornar esta limitação?

Obrigado,

Antônio
Antônio Olinto
Linux User 455618
Ubuntu User 31203

Offline RonaldoRG

  • Usuário Ubuntu
  • *
  • Mensagens: 659
    • Ver perfil
    • Twitter: @rafas_andrade
Re: como lidar com espaços em nomes de arquivos
« Resposta #1 Online: 29 de Julho de 2010, 23:52 »
No terminal pra entrar com nomes de arquivos com espaço, eu digito o nome dele entre aspas, ex.: "nome do arquivo.mp3".
Não sou muito familiarizado com scripts, mas será que funciona assim:
Código: [Selecionar]
...
lame -b 128 --mp3input "$i" ${i%.mp3}-128.mp3
...
de maneira que o nome do arquivo saia entre aspas.
Abraço.
Ubuntu 12.04

Offline lueneberg

  • Usuário Ubuntu
  • *
  • Mensagens: 727
    • Ver perfil
    • BrasilLivre
Re: como lidar com espaços em nomes de arquivos
« Resposta #2 Online: 30 de Julho de 2010, 07:19 »
esse é um script para remover espaços,,vc pode adaptar no teu script ou usar ele antes
Código: [Selecionar]
Código: [Selecionar]
!/bin/bash
find | while read FN;do mv "$FN" "`echo $FN | sed -e 's/ /_/g'`";done

ele substitui os espaços por " _ "

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: como lidar com espaços em nomes de arquivos
« Resposta #3 Online: 01 de Agosto de 2010, 17:44 »
Outra maneira é usar o comando exec do find:
Código: [Selecionar]
find -iname \*.mp3 -exec ./myscript.sh '{}' +
Onde o seu 'myscript.sh' receberá cada um dos nomes de arquivo separadamente (é o '{}' na linha de comando).

Dai você pode escrever um script que tratará esse nome de arquivo e fazer o que vc quer.

Offline olinto

  • Usuário Ubuntu
  • *
  • Mensagens: 139
    • Ver perfil
Re: como lidar com espaços em nomes de arquivos
« Resposta #4 Online: 04 de Agosto de 2010, 08:13 »
Olá pessoal, obrigado pelas respostas. Estive off line uns dias. Vou tentar resolver a questão com as soluções dadas e volto a escrever.
Antônio Olinto
Linux User 455618
Ubuntu User 31203