Enviado em 05/11/2014 - 16:11h
Olá, estou com um problema ao tentar criar um script que renomeia arquivos. Estou utilizando o comando:
for i in `ls -1 /diretorio/`;do
x=$i;
done
Como os arquivos que desejo renomear possuem o caractere de espaço presentes no nome, toda vez que o comando "for" encontra um caractere de espaço, ele incrementa a variável $i em + 1, logo ocorre uma quebra a linha ao imprimir o conteúdo de $i e assim o nome completo do arquivo não é mostrado em corretamente.
Exemplo do que ocorre:
ls -1 /diretorio
arquivo teste 1
arquivo teste 2
arquivo teste 3
for i in `ls -1 /diretorio`;do
echo $i;
done
A saída será:
arquivo
teste
1
arquivo
teste
2
arquivo
teste
3
Como resolvo esta situação? Alguma ideia de fazer o for não considerar caracteres de espaço ou alguma solução distinta?
for i in `ls -1 /diretorio/`;do
x=$i;
done
Como os arquivos que desejo renomear possuem o caractere de espaço presentes no nome, toda vez que o comando "for" encontra um caractere de espaço, ele incrementa a variável $i em + 1, logo ocorre uma quebra a linha ao imprimir o conteúdo de $i e assim o nome completo do arquivo não é mostrado em corretamente.
Exemplo do que ocorre:
ls -1 /diretorio
arquivo teste 1
arquivo teste 2
arquivo teste 3
for i in `ls -1 /diretorio`;do
echo $i;
done
A saída será:
arquivo
teste
1
arquivo
teste
2
arquivo
teste
3
Como resolvo esta situação? Alguma ideia de fazer o for não considerar caracteres de espaço ou alguma solução distinta?