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: Julio C. Neves
Subject: Re: [shell-script] Organizando extrato de banco!
Date: Tue, 5 Feb 2013 15:33:17 -0200

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]



reply via email to

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