|
From: | João Olavo Baião de Vasconcelos |
Subject: | Re: [shell-script] Identificar nome de arquivos com acentuação do Windows |
Date: | Mon, 16 Dec 2013 11:25:13 -0200 |
Fala João,as chuvas por aí pararam de fazer estrago?Usando o exemplo que vc mandou, fiz o seguinte:$ paste -d/ <(sed 's/_/\n/g' <<< 'M-a_M-A_M-`_M-@_M-b_M-B_M-c_M-g_M-G_M-i_M-I') <(sed 's/_/\n/g' <<< á_Á_à_À_â_Â_ã_ç_Ç_é_É) | xargs -i echo sed \'s/{}/g\'sed 's/M-a/á/g'sed 's/M-A/Á/g'sed 's/M-`/à/g'sed 's/M-@/À/g'sed 's/M-b/â/g'sed 's/M-B/Â/g'sed 's/M-c/ã/g'sed 's/M-g/ç/g'sed 's/M-G/Ç/g'sed 's/M-i/é/g'sed 's/M-I/É/g'Se a saída desse cmd fosse redirecionada para, digamos, arq_sed e vc fizesse:sed -f arq_sed <(ls) > arqs_editadose depois fizesse:paste <(ls) arq_editados | xargs -L1 mvAcho que funcionaria. Mas se vc conseguir fazer pelo iconv, é melhor.Infelizmente meu conhecimento de M$ é cada dia menor e por isso não posso te ajudar tanto quanto vc merece.Grande abraço para vc extendendo aos meus amigos daí,Julio@juliobash
Facebook!? Not even if a cow coughs... ;)Posso dar treinamento Shell em qualquer parte do país.Me mande um e-mail para saber detalhes ouecho 618921594007727281449002107776021103258914797578P | dcEm 16 de dezembro de 2013 11:55, João Olavo Baião de Vasconcelos <address@hidden> escreveu:No Linux:Olá Julio!!Não poderia dar cat no arquivo em si, pois não me interessa seu conteúdo, mas sim o nome do arquivo. Segue então um "cat -vet" no nome de um arquivo:
Nome dos arquivos (visão Windows):
poção de átomos.txt
x_á_Á_à_À_â_Â_ã_ç_Ç_é_É.txt$ ls
po??o de ?tomos.txt
x_?_?_?_?_?_?_?_?_?_?_?.txt
$ ls | cat -vet
poM-gM-co de M-atomos.txt$
x_M-a_M-A_M-`_M-@_M-b_M-B_M-c_M-g_M-G_M-i_M-I.txt$
O -vet interpreta então como sendo esses "M-", bem variado.Aí eu pensei em fazer usando o iconv:
$ saida="$(ls)"
$ saida_iconv="$(ls | iconv -f latin1 -t utf8)"
$ echo "$saida"
po��o de �tomos.txt
x_�_�_�_�_�_�_�_�_�_�_�.txt
$ echo "$saida_iconv"
poção de átomos.txt
x_á_Á_à_À_â_Â_ã_ç_Ç_é_É.txt
$ [ "$saida" == "$saida_iconv" ] || echo 'WINDOWS ALERT!!!'
WINDOWS ALERT!!!Acredito que vá funcionar utilizando essa ideia de comparar com a saida do iconv.2013/12/14 Julio C. Neves <address@hidden>
Fala João,como vc sabe, estou longe de ser um especialista em rWin e no meu trampo essa aberração está praticamente extinta e por isso fica complicado de testar o que irei propor.Eu tentaria montar um arquivo com todas as representações de cedilha, acentos, ... geradas pelo cat -vet e outro com as substituições necessárias do sed. Depois faria:cat -vet arquivo/que/veio/do/rwin | grep -f arquivo/representacoes/estranhas || exitsed -fi.veio arquivo/com/as/substituicoes/do/sed arquivo/que/veio/do/rwinSe não deu certo, o arquivo antigo estará salvo em arquivo/que/veio/do/rwin.veioAbcs,Julio@juliobashFacebook!? Not even if a cow coughs...;)Posso dar treinamento Shell em qualquer parte do país.Me mande um e-mail para saber detalhes ouecho 618921594007727281449002107776021103258914797578P | dcEm 13 de dezembro de 2013 13:11, João Olavo Baião de Vasconcelos <address@hidden> escreveu:Pessoal,
Temos uma aplicação que roda no Windows, mas submete execuções para serem feitas no Linux.O usuário de vez em quando cria um diretório ou arquivo cujo nome contém cedilha, acentos, til, etc., mas ele faz isso a partir do Windows.
Aí, devido à codificação diferente do Windows (caracteres não UTF-8, mas sim latin-1, se não me engano), isso faz com que a execução no Linux falhe, pois o arquivo acaba não sendo identificado.Gostaria de fazer um script para botar no cron e ficar vigiando se o nome de algum diretório ou arquivo criado contém caracteres não UTF-8, mas não consegui identificar uma maneira.
Alguma dica?
Obrigado!--
João Olavo Baião de Vasconcelos
Analista de Sistemas - Infraestrutura
--
João Olavo Baião de Vasconcelos
Analista de Sistemas - Infraestrutura
--
João Olavo Baião de Vasconcelos
Analista de Sistemas - Infraestrutura
[Prev in Thread] Current Thread [Next in Thread]
- Identificar nome de arquivos com acentuação do Windows, João Olavo Baião de Vasconcelos, 2013/12/13
- Re: [shell-script] Identificar nome de arquivos com acentuação do Windows, Julio C. Neves, 2013/12/14
- Re: [shell-script] Identificar nome de arquivos com acentuação do Windows, João Olavo Baião de Vasconcelos, 2013/12/16
- Re: [shell-script] Identificar nome de arquivos com acentuação do Windows, Julio C. Neves, 2013/12/16
- Re: [shell-script] Identificar nome de arquivos com acentuação do Windows, João Olavo Baião de Vasconcelos <=
- Prev by Date: Re: [shell-script] Identificar nome de arquivos com acentuação do Windows
- Next by Date: O que são scripts; entenda para o que servem
- Previous by thread: Re: [shell-script] Identificar nome de arquivos com acentuação do Windows
- Next by thread: O que são scripts; entenda para o que servem
- Index(es):