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: Rafael Henrique da Silva Correia
Subject: Re: [shell-script] Organizando extrato de banco!
Date: Tue, 5 Feb 2013 15:49:00 -0200

Júlio fugindo um pouco do foco (mas nem tanto), o comando...

tr -d "\r" file

Poderia ser substituído por..

sed 's/.$//' file

Como eu fiz acima?

Grato :)

Em 5 de fevereiro de 2013 15:33, Julio C. Neves <address@hidden>escreveu:

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



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



reply via email to

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