Pular para o conteúdo

Manipulando o SED

Responder tópico
  • Denunciar
  • Indicar

1. Manipulando o SED

Enviado em 15/02/2008 - 17:37h

Estou tentando criar um script que substitua o underscore no nome de um arquivo por um espaço em branco, usando o SED. Criei o script só por curiosidade, pois pouco sei sobre isso, mas fiquei curioso de saber o que vai mal nele:

ct=1
for i in *
do
echo $i | sed "s:\_: :g" >> lista.txt
name=`sed -n "${ct} p; ${ct} q" lista.txt`
mv $i $name
((ct++))
done
rm lista.txt
exit 0

Com esse código, não consigo renomear os arquivos, embora em lista.txt eles estejam impressos da maneira que eu gostaria que ficassem. Se eu substituo o mv $i $name por echo $name, eles saem perfeitamente. O que há de errado?

Responder tópico

2. Comando MV

Enviado em 25/06/2008 - 20:17h

Como no seu script o nome do novo arquivo está sendo armazenado em $name, e essa varíavel conteém espaços, tipo "nome do arquivo", o mv entende que são vários nomes.
Para resolver o problema, coloque o segundo parâmetro entre aspas:
mv $i "$name"

Assim o seu problema estará resolvido

Posta o resultado

3. Genericão...

Enviado em 26/06/2008 - 02:26h

Assim também funcionaria:

for i in *
do
mv "$i" "${i//_/ }"
done

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder