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

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

Re: [shell-script] Organizando extrato de banco!


From: Alfredo Casanova
Subject: Re: [shell-script] Organizando extrato de banco!
Date: Wed, 6 Feb 2013 09:06:07 -0200

A pergunta foi porque rodei o dos2unix no arquivo logo de cara e o problema
dos acentos continuou :)
Em 05/02/2013 18:44, "Julio C. Neves" <address@hidden> escreveu:

> **
>
>
> Uma coisa muito simples:
>
> $ tr -d "\r" < file
>
> Complicar as coisas simples para que? Nem todas as distros vêm com o
> dos2unix instalado e a sintaxe do tr é tão simples...
>
> Se quer complicar um pouquinho, então use sed que tb está presente em todas
> as distros.
>
> Abcs,
> Julio
> @juliobash
>
> Em 5 de fevereiro de 2013 16:15, Alfredo Casanova
> address@hidden>escreveu:
>
> > **
> >
> >
> > O comando dos2unix deveria fazer isso também?
> >
> > 2013/2/5 Julio C. Neves address@hidden>
> >
> > > **
> > >
> > >
> > > Fala Alfredo,
> > > o que está te matando é esse "with CRLF line terminators" qdo vc dá um
> > file
> > > no arquivo. Aí é que está a zebra.
> > >
> > > Para desfazer esta lambança microsoftiana, faça:
> > >
> > > $ tr -d '\r' < extrato20130204-1552.csv > /tmp/$$
> > > $ mv -f /tmp/$$ extrato20130204-1552.csv
> > >
> > > e agora é só correr para o abraço...
> > >
> > > Mágica? Não houve. O tr com a opção -d matou o CR (\r, mas tb poderia
> ter
> > > sido \015, em octal) e deixou somente o LF como o LINUX gosta. A saída
> > foi
> > > enviada para um arquivo temporário com o nome igual ao PID do processo
> > > ($$), que foi renomeado por cima do anterior.
> > >
> > > Abcs,
> > > Julio
> > > @juliobash
> > >
> > > Em 5 de fevereiro de 2013 11:59, Alfredo Casanova
> > >
> > > address@hidden>escreveu:
> > >
> > > > **
> > > >
> > > >
> > > > seguem os testes:
> > > >
> > > > $ cat arq
> > > > sem acento
> > > > tb sem acento
> > > > Essa é acentuada
> > > > e essa tb, ó
> > > > mas essa não é minha, Eça é de Queiroz
> > > >
> > > > $ echo $LANG
> > > > en_US.UTF-8
> > > >
> > > > $ grep -o '[A-Za-z]' arq | xargs echo ' '
> > > > s e m a c e n t o t b s e m a c e n t o E s s a é a c e n t u a d a e
> > e s
> > > > s a t b ó m a s e s s a n ã o é m i n h a E ç a é d e Q u e i r o z
> > > >
> > > > $ grep -o '[[:alpha:]]' arq | xargs echo ' '
> > > > s e m a c e n t o t b s e m a c e n t o E s s a é a c e n t u a d a e
> > e s
> > > > s a t b ó m a s e s s a n ã o é m i n h a E ç a é d e Q u e i r o z
> > > >
> > > > $ file extrato20130204-1552.csv
> > > > extrato20130204-1552.csv: ISO-8859 text, with CRLF line terminators
> > > >
> > > > $ cat extrato20130204-1552.csv | head -1
> > > > "Data","Dependencia Origem","Hist�rico","Data do Balancete","N�mero
> do
> > > > documento","Valor",
> > > >
> > > > $ iconv -t UTF-8 extrato20130204-1552.csv
> > > > "Data","Dependencia Origem","Histiconv: illegal input sequence at
> > > position
> > > > 33
> > > >
> > > > $ iconv -f ISO-8859-15 -t UTF-8 extrato20130204-1552.csv | head -1
> > > > "Data","Dependencia Origem","Histórico","Data do Balancete","Número
> do
> > > > documento","Valor",
> > > >
> > > > adicionei a seguinte linha ao meu código:
> > > >
> > > > iconv -f ISO-8859-15 -t UTF-8 $1 -o $1
> > > >
> > > > 2013/2/4 Rafael Henrique da Silva Correia address@hidden>
> > > >
> > > > > Apenas acrescentando uma questão curiosa a este post:
> > > > >
> > > > > Estes dias estive fazendo um script em que pegava dados de uma
> página
> > > > > web... quando mandei salvar em um arquivo ele também deu uma
> zuada...
> > > > como
> > > > > vc disse acima Alfredo... eu não conseguia converter e o trabalho
> com
> > > > > vetores ficou complicado por ex:
> > > > >
> > > > > ${VETOR[@]} -> vinha somente um elemento (o último)... e estou
> MUITO
> > > > > acostumado a utilizar isso em arquivos .csv (que trabalho
> > diariamente)
> > > > >
> > > > > Acabei resolvendo o problema com o sed (que removia o CRLF do final
> > das
> > > > > linhas).
> > > > >
> > > > > Será que isso acontece quando a gente pega dados de coisas que já
> > estão
> > > > em
> > > > > UTF-8?
> > > > >
> > > > > Funçãozinha que eu fiz:
> > > > >
> > > > > # Esta função serve para "buscar" battletags da página da Blizzard
> > > (quem
> > > > > joga diablo 3 vai entender isso)
> > > > > # Não se preocupem com o objetivo do script pois ele é bem
> idiotinha
> > > > :)...
> > > > > legal foi a zica que deu
> > > > >
> > > > > update_BTlist(){
> > > > > TOPIC=( $(lynx -source http://us.battle.net/d3/pt/forum/3357729/| \
> > > > > awk -F"href=" '( $1 ~ "../topic" || $2 ~ "../topic" ){
> > > > > split($2,vet,"\".."); print "http://us.battle.net/d3/pt/forum";
> > vet[2]
> > > > }')
> > > > > )
> > > > >
> > > > > for((cont=0;cont<"${#TOPIC[@]}";cont++)); do
> > > > > echo "Progresso $(( ($cont+1) * 100 / ${#TOPIC[@]} )) %"
> > > > > BATTLETAG=( ${BATTLETAG[@]} $(lynx -source "${TOPIC[$cont]}" | awk
> > > > > -F"href=" '( $1 ~ "view-d3-profile" || $2 ~ "view-d3-profile" ) {
> > > > > split($2,vet,"profile/"); print vet[2] }' | sed "s/\/\">//g") )
> > > > > done
> > > > >
> > > > > echo "${BATTLETAG[@]}" | tr " " "\n" >> "$BTDBtmp"
> > > > > sort -u "$BTDBtmp" > "$BTDB"
> > > > >
> > > > > # O texto original do arquivo é: assembler source, UTF-8 Unicode
> > text,
> > > > > with CRLF line terminators
> > > > > # Para remover o CRLF do arquivo basta executarmos o seguinte
> comando
> > > > > abaixo:
> > > > > sed -i 's/.$//' "$BTDB"
> > > > > # desta forma o arquivo vira um: assembler source, UTF-8 Unicode
> text
> > > > >
> > > > > Bom coloquei o script só para ilustrar os "erros", não levem a mal
> > por
> > > > > favor e se virem algo errado CRITIQUEM :-).
> > > > >
> > > > > Att.
> > > > >
> > > > > Em 4 de fevereiro de 2013 16:26, Alfredo Casanova
> > > > > address@hidden>escreveu:
> > > > >
> > > > > > **
> > > > > >
> > > > > >
> > > > > > Boa tarde pessoal
> > > > > > Resolvi fazer um sistema pra organizar alguns extratos de banco,
> > mas
> > > > logo
> > > > > > de cara me deparei com um problema.
> > > > > >
> > > > > > Quando dou um grep na coluna de descrição dos gastos, ele dá pau
> > nas
> > > > > > palavras com caracteres non-ascii. Tentei fazer um "iconv -t
> > > > > > 'ascii//TRANSLIT', pois os acentos não me fariam falta, mas ele
> me
> > > deu
> > > > o
> > > > > > seguinte erro:
> > > > > >
> > > > > > iconv: illegal input sequence at position 33
> > > > > >
> > > > > > position 33 era um "ó"
> > > > > >
> > > > > > Não sei como forçar o bash a trabalhar com UTF-8, nem se essa
> > seria a
> > > > > > melhor solução.
> > > > > >
> > > > > > Alguém tem alguma ideia?
> > > > > >
> > > > > > --
> > > > > > []'s
> > > > > > Alfredo Casanova
> > > > > > Linux User #228230
> > > > > > msn: address@hidden
> > > > > > tel: +55 61 9655 9619
> > > > > >
> > > > > > [As partes desta mensagem que não continham texto foram
> removidas]
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Rafael Henrique da Silva Correia
> > > > > http://abraseucodigo.com.br
> > > > >
> > > > > Bacharel em Ciência da Computação
> > > > > Administrador de Sistemas Linux
> > > > > Certificado pela LPIC - 101 http://www.lpi.org/>
> > > > > Certificado Novell (CLA)
> > http://www.novell.com/training/certinfo/cla/>
> > > > >
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > >
> > > > >
> > > > > ------------------------------------
> > > > >
> > > > > ----------------------------------------------------------
> > > > > 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
> > > > > ----------------------------------------------------------
> > > > > Servidor Newsgroup da lista: news.gmane.org
> > > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > > > >
> > > > > Links do Yahoo! Grupos
> > > > >
> > > > >
> > > > >
> > > >
> > > > --
> > > > []'s
> > > > Alfredo Casanova
> > > > Linux User #228230
> > > > msn: address@hidden
> > > > tel: +55 61 9655 9619
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > --
> > []'s
> > Alfredo Casanova
> > Linux User #228230
> > msn: address@hidden
> > tel: +55 61 9655 9619
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



reply via email to

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