Em 26-11-2009 18:06, "Flávio R. Lopes" escreveu:
> Boa tarde galera!
>
> Seguinte:
> Tenho vários diretórios onde são gerados alguns arquivos, onde o padrão
> deles é que terminam com a extensão ".txt", por exemplo:
>
> banana.txt
> ventilador.txt
> regua.txt
> arquivocomnomegrande.txt
>
> e por aí vai.
>
> gostaria na verdade de alguma rotina com o SED (que agisse de forma
> recurssiva nos diretorios que eu indicar) que somente tirasse as
> extensões deles, sem alterar seu conteudo, ou seja:
>
> banana.txt ficaria banana
> ventilador.txt ficaria ventilador
> regua.txt ficaria regua
> arquivocomnomegrande.txt ficaria arquivocomnomegrande
>
> em resumo, seria a mesma coisa que eu fizesse manualmente o seguinte:
>
> mv banana.txt banana
> mv ventilador.txt ventilador
> mv regua.txt regua
> mv arquivocomnomegrande.txt arquivocomnomegrande
>
>
> Como posso fazer isso?
>
> abraço,
> Flávio
>
>    
Como você quer renomear recursivamente, tente assim:
(Não testei, mas creio que funcionará)

#! /bin/bash
#Pega recursivamente os .txt's:
find /home/diretorio| grep -i .txt$| while read arquivos; do
#Renomeia em uma variável retirando o .txt:
arquivo_sem_txt=$(basename "$arquivos" .txt)
#Se o arquivo for mesmo .txt, renomeia para tirar o txt:
if [ "$arquivo_sem_txt" = "$arquivos"]; then
mv "$arquivos" "$arquivo_sem_txt"
fi
done

-- 
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a