shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Renomeando arquivos com espaço


From: Assistência Técnica Balanças Brasil
Subject: Re: [shell-script] Renomeando arquivos com espaço
Date: Thu, 24 Feb 2005 17:12:06 -0300
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040805 Netscape/7.2



Ainda estou começando a aprender shell script e coincidentemente,
hoje eu  estava tentando fazer um script parecido, mas conheço
pouco de shell e não estou conseguindo descobrir como retirar
todos os pontos do nome do arquivo menos o último.

Algúem daqui poderia me ajudar?

Consegui chegar até aqui e empaquei:

#!/bin/bash
#
# Criado em 24/02/2005 baseado em varios exemplos encontrados na internet
# Autor: MFPZ
#
# Finalidade:
# script para corrigir nomes de arquivos
# que contenham dois pontos seguidos em 
# seu nome por apenas um ponto e
# substituir espacos por "_"
#
#
FOUND=0                                                   # Valor de retorno de 
sucesso

find ./* -type f -print | while read filename ; do        # Verifica todos os 
arquivos e diretorios abaixo do atual
     if test -f "$filename"; then                         # Verifica se e um 
arquivo e nao um diretorio
         fname="$filename"                                      
       echo "$fname" | grep -q " "                        # Verifica se o nome 
do arquivo 
       if [ $? -eq $FOUND ] ; then                        # contem espacos e se 
contiver espacos 
         nome=`echo "$fname" | sed -e "s/ /_/g"`          # Substitui espacos 
por underline     
       else 
         nome="$filename"
       fi
           n=`echo "$nome" | sed -e "s/\.\./\./g"`        # Substitui ".." por 
"." no nome do arquivo



#  
#  ?                                                      # Se houver mais de 
um "." no nome resultante
#  ?                                                      # Substitui as 
primeiras ocorrencias do "." por "_"
#  ?                                                      # mantendo penas o 
ultimo "."
#                                                         
                                                          

       if [ "$fname" != "$n" ]                            # Verifica se o novo 
nome e diferente do nome antigo
         then
           if [ -f "$n" -o -d "$n" ] ; then               # Verifica se existe 
arquivo ou diretorio com nome igual ao novo nome
              no="$n"
               {
                 i=1
                   while [ -f "$n.$i" -o -d "$n.$i" ] ; do
                       i=$((i+1))
                     done
                 n="$n.$i"
               }
            fi
         mv "$fname" $n                                      # Renomeia arquivo
       fi
     fi
   done
 exit 0



Miranda wrote:

>eu costumo retirar espaços e outras cositas mais
>usando o seguinte script
>
>IFS='
>'
>ARQ=$1
>while [ ! -z "$ARQ" ]
>do
>  NOVO=`echo $ARQ|tr ' ,(,),\047' '_'`
>  mv $ARQ $NOVO
>  shift
>  ARQ=$1
>done
>
>dei nome de retiraesp à êle
>e posicionando no diretório onde tem os arquivos
>que vou renomear faço a chamada com algo do tipo
>  
>
>>retiresp *
>>    
>>
>
>On Thursday 24 February 2005 16:26, +[+ Suicide|Solution +]+ wrote:
>  
>
>>Tenho diversas mp3 num diretório do mesmo artista e estou tentando
>>criar um sh para organizá-las, adicionando o Artista em todos os
>>arquivos .mp3 da seguinte forma...
>>
>>01 - Musica Co Co.mp3 ->  01 - Artista - Musica Co Co.mp3
>>02 - Musica  Xi Xi.mp3 ->  02 - Artista - Musica Xi Xi.mp3
>>
>>já tentei fazer o diabo a 4, o que esta me matando sao os espaços,
>>alguem pode ajudar?
>>
>>Suicide|Solution
>>
>>
>>---------------------------------------------------------------------
>>Esta lista não admite a abordagem de outras liguagens de programação, como
>>perl, C etc. Quem insistir em não seguir esta regra será moderado sem
>>prévio aviso.
>>--------------------------------------------------------------------- Sair
>>da lista: address@hidden
>>---------------------------------------------------------------------
>>Esta lista é moderada de acordo com o previsto em
>>http://www.listas-discussao.cjb.net
>>---------------------------------------------------------------------
>>
>>Links do Yahoo! Grupos
>>
>>
>>
>>    
>>
>
>
>---------------------------------------------------------------------
>Esta lista não admite a abordagem de outras liguagens de programação, como 
>perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
>aviso.
>---------------------------------------------------------------------
>Sair da lista: address@hidden
>---------------------------------------------------------------------
>Esta lista é moderada de acordo com o previsto em 
>http://www.listas-discussao.cjb.net
>---------------------------------------------------------------------
> 
>Links do Yahoo! Grupos
>
>
>
>
> 
>
>
>
>  
>


-- 
Atenciosamente,

Mauricio Zani
Ger. Dep. Técnico / Qualidade
Balanças Brasil Ltda.
Fone (19) 3256-7155 - ramal 23
email: address@hidden
homepage: http://www.balancasbrasil.com


***********   PROCEDIMENTO  DE  SEGURANÇA   CONTRA  VÍRUS   ***********
Se houver algum arquivo anexo a esta mensagem que não esteja
implicitamente indicado no texto acima, ELIMINE-O e informe
imediatamente a BALANÇAS BRASIL.
NUNCA ABRA ARQUIVOS QUE NÃO ESTEJAM ESPECIFICAMENTE INDICADOS 
NO TEXTO DA MENSAGEM.
************         ANTI VÍRUS  SAFETY  PROCEDURE          ***********



[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]