[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]