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

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

Re: [shell-script] Alterando nomes de arquivos com caracteres especiais


From: Leonardo Bernardes
Subject: Re: [shell-script] Alterando nomes de arquivos com caracteres especiais
Date: Thu, 14 Aug 2008 22:38:47 -0300

Victor, não sei se é exatamente isso o que você quer, mas se tudo que
você precisa é mudar o caráter "?" do nome de algum arquivo por "x"
então aí vai uma sugestão (lembrando que o script só vai funcionar com
os arquivos dentro da pasta atual):

#!/bin/bash
acent=$(ls -1 |grep "\?")
if [ -z "$acent"  ]; then
        echo "Nenhum arquivo com '?' encontrado!"
else
        lines=$(echo "$acent" |wc -l)
        ct=1
        while [ $ct -le $lines ]; do
                old=$(echo "$acent" |awk 'NR == '$ct' {print $0}')
                new=$(echo "$old" |sed 's/\?/x/g')
                mv "$old" "$new"
                ((ct++))
        done
        exit 0
fi

Mande notícias caso tenha funcionado!
Abraços

Leonardo Bernardes
Usuário Linux # 444329
brausen.blogspot.com


2008/8/14 aiok_gui <address@hidden>
>
> Olá amigos,
>
> Meu nome é Victor e usei muito o Linux de 97 a 2001. Depois dei uma
> parada para trabalhar com Win (coisas do ofício).
>
> Bem, atualmente estamos incubados na Fundação Softville, em Joinville-SC.
>
> Estou com um problema e após procurar e estudar bastante e não
> conseguir resolver meu problema, fui procurar nos fóruns para ver se
> encontrava uma solução.
>
> Achei um post do Julio Cezar Neves para renomear um grupo de arquivos
> com caracteres especiais (acentuados).
>
> Vou relatar meu problema e gostaria que, se possível, vocês nos
> ajudassem: Tenho uma máquina com Windows XP (hda1 - C: e hda2 - D:).
> Ao instalar o Debian 4, eu provavelmente alterei o hda2 para hidden.
> Bem, consegui com o gpart/cfdisk recuperar a partição.
> Ao entrar no Windows, lá está o D:, mas vazio. Retornando no Linux,
> montei como root a partição, consegui ler os arquivos, mas não consigo
> gravar na partição, mesmo mudando as permissões para total (777).
>
> Bem, uma solução para recuperar os arquivos, a partir do Linux, seria
> gravar os dados do D: (hda2) para um diretório qualquer (p.e.
> /home/d), mas como os arquivos acentuados aparecem com o caracter "?",
> que é um coringa, não consegui copiar/mover.
>
> O script do Julio que encontrei é o script abaixo adaptado por mim:
>
> #!/bin/bash
> #
> # Testando se vc passou o diretorio como parametro
> # default = diretorio corrente.
> #
> if [ $# -eq 1 ]
> then
> Dir=$1
> else
> Dir="."
> fi
> cd $Dir
> for ComAcen in `ls -R | grep '[\?]'`
> do
> SemAcen=`echo $ComAcen | tr "[\?]" "[x]"`
>
> # listando os 2 em ordem cronologica (-t) e
> # pegando o + novo (head -1). Se o que acabamos de tirar
> # os acentos for mais novo, será renomeado.
> mv -f $ComAcen $SemAcen
> done
>
> -------------
>
> Como não terei arquivos com nomes repetidos, o if que fazia este teste
> dentro do for foi retirado.
>
> Fui pra linha de comando, gravei este arquivo em /mnt e mudei
> a permissão para execução. Mas ao executar, ele não faz o que
> gostaria, ou seja, mudar o "?" para "x".
> Já tentei mudar de "/?" para "?", mas também não funcionou.
>
> Alguém poderia me ajudar?
>
> Cordialmente,
>
> Victor
>

reply via email to

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