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